我已经创建了一个自定义AuthorizationAttribute,我将其放在我的控制器上。我跟着this article。我在OnAuthorization方法中实现了自定义授权逻辑,这很好用。当用户未通过授权时,我目前正在执行以下操作:
// if authorization check fails...
filterContext.Result = new HttpUnauthorizedResult();
这会显示用户名/密码提示。
我的问题是,当用户授权失败时,建议将用户发送到“拒绝访问”类型页面的方式是什么?
我正在使用MVC3。
答案 0 :(得分:5)
在登录页面上,您可以检查用户是否已登录并显示拒绝访问的消息,而不是登录提示。
答案 1 :(得分:2)
最后,我进行了直接重定向:
public override void OnAuthorization(AuthorizationContext filterContext)
...
// if authorization check fails...
filterContext.Result = new RedirectResult(AccessDeniedPage);
编辑:Rob Conery有一篇非常好的文章详细描述了ASP.NET MVC: Securing Your Controller Actions
答案 2 :(得分:1)
您可以使用错误代码401