在我的 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");
}
我想使用声明性方法,但不确定如何处理未经授权的请求。有什么建议么?