用户未经授权时,重定向到AccessDenied页面

时间:2011-06-13 10:59:27

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

我已经创建了一个自定义AuthorizationAttribute,我将其放在我的控制器上。我跟着this article。我在OnAuthorization方法中实现了自定义授权逻辑,这很好用。当用户未通过授权时,我目前正在执行以下操作:

// if authorization check fails...
filterContext.Result = new HttpUnauthorizedResult();

这会显示用户名/密码提示。

我的问题是,当用户授权失败时,建议将用户发送到“拒绝访问”类型页面的方式是什么?

我正在使用MVC3。

3 个答案:

答案 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

投掷HttpException