私の MVC アプリケーションには、顧客を削除するコントローラー アクションがあり、WIF を使用してクレーム ベースの承認を適用しています。
問題: 誰かがアクセス権を持っていない場合、ブラウザーに例外が表示されます (スタックトレースを完備) が、リダイレクトしたいだけです。
これは機能し、リダイレクトできます:
public ActionResult Delete(int id)
{
try
{
ClaimsPrincipalPermission.CheckAccess("Customer", "Delete");
_supplier.Delete(id);
return RedirectToAction("List");
}
catch (SecurityException ex)
{
return RedirectToAction("NotAuthorized", "Account");
}
}
これは機能しますが、キャッチする方法がわからない SecurityException がスローされます (ユーザーが承認されていない場合):
[ClaimsPrincipalPermission(SecurityAction.Demand, Operation = "Delete", Resource = "Customer")]
public ActionResult Delete(int id)
{
_supplier.Delete(id);
return RedirectToAction("List");
}
宣言型のアプローチを使用したいのですが、許可されていないリクエストを処理する方法がわかりません。助言がありますか?