【发布时间】:2011-08-10 00:24:48
【问题描述】:
如果我的 ASP.NET MVC 3 (Razor) Web 应用程序中有一个 Area,其中所有控制器都派生自如下所示的基本控制器:
[Authorize(Roles="Administrator")]
public class AdminController : Controller
{
}
当非管理员尝试访问该区域中的 URL 时,他们会被重定向到 web.config 中指定的登录页面。
但是,如果用户已经通过身份验证,但不是管理员,这实际上没有意义。在那种情况下,我们不应该返回 HTTP 401 吗?
我的问题基本上是人们如何处理这个问题 - 他们是否创建自定义授权属性?
【问题讨论】:
-
已投票结束 - 因为我发现了另一个确切的问题:stackoverflow.com/questions/238437/…。虽然那是 2 年前的事了 - 它仍然是同样的问题吗?
-
是的,同样的问题。顺便说一句,您总是可以编写自己的 Authorize 并让它抛出一个带有 401 的
HttpException。
标签: asp.net-mvc security forms-authentication roles authorize-attribute