如何找到授权失败的原因

时间:2012-04-20 13:48:30

标签: asp.net-mvc asp.net-mvc-3

我在我的MVC3应用程序中使用从AuthorizeAttribute派生的类进行全局授权。我通过filters.Add(new CtsAuthorizeAttribute());

将其用作全局过滤器

现在我已经实现了一个自定义角色提供程序,并希望开始在控制器上放置更具体的授权过滤器,如下所示:

[CtsAuthorize(Roles = "systemadmin")]
public class CompanyController : CtsController

我想重定向到基于角色的授权失败的消息页面(理想情况下只是修改失败页面的模型属性),但是保留默认重定向到登录页面以进行基于登录的失败。在下面的覆盖中,我如何确定授权失败的原因?

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
    base.HandleUnauthorizedRequest(filterContext);
}

我可以在角色'中复制'用户检查,但它刚刚由这个过滤器执行。我无法从过滤器中了解如何学习。

1 个答案:

答案 0 :(得分:0)

您可以通过提供的上下文参数检查用户是否经过身份验证;然后可以在本地确定角色。