我在我的MVC3应用程序中使用从AuthorizeAttribute
派生的类进行全局授权。我通过filters.Add(new CtsAuthorizeAttribute());
现在我已经实现了一个自定义角色提供程序,并希望开始在控制器上放置更具体的授权过滤器,如下所示:
[CtsAuthorize(Roles = "systemadmin")]
public class CompanyController : CtsController
我想重定向到基于角色的授权失败的消息页面(理想情况下只是修改失败页面的模型属性),但是保留默认重定向到登录页面以进行基于登录的失败。在下面的覆盖中,我如何确定授权失败的原因?
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
base.HandleUnauthorizedRequest(filterContext);
}
我可以在角色'中复制'用户检查,但它刚刚由这个过滤器执行。我无法从过滤器中了解如何学习。
答案 0 :(得分:0)
您可以通过提供的上下文参数检查用户是否经过身份验证;然后可以在本地确定角色。