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

Ste*_*eve 5 asp.net-mvc authorization asp.net-mvc-3

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

// if authorization check fails...
filterContext.Result = new HttpUnauthorizedResult();
Run Code Online (Sandbox Code Playgroud)

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

我的问题是,当用户未通过授权时,建议将用户发送到"访问被拒绝"类型页面的方式是什么?

我正在使用MVC3.

Tom*_*son 5

在登录页面上,您可以检查用户是否已登录并显示拒绝访问消息而不是登录提示.


Ste*_*eve 2

最后我直接重定向:

public override void OnAuthorization(AuthorizationContext filterContext)
...
// if authorization check fails...
filterContext.Result = new RedirectResult(AccessDeniedPage);
Run Code Online (Sandbox Code Playgroud)

编辑: Rob Conery 有一篇非常好的文章,详细描述了ASP.NET MVC:保护您的控制器操作