我现在的项目是使用ASP.Net MVC这我加入身份验证内置的内部Web应用程序。我有一个预先创建的HTTPModule,它创建一个具有适当角色的IPrincipal。如果用户没有通过验证,我得到的角色为“公共”ASP.Net MVC:AuthorizeAttribute可以被重写吗?
用户对象由于这是一个内部应用程序的大部分网页都是私有的,只能查看到角色“管理”。因为我有一个基本的控制器我可以这样做:
[Authorize(Roles="Admin")]
public abstract class MyControllerBase : Controller
{
...
}
我有一个问题,但因为一些动作都是可见在公众网站上,如果我的属性他们像这样:
[Authorize(Roles="Public")]
public class LoginController : MyController
{
public ActionResult Index()
{
}
}
的由于用户未通过身份验证,因此无法加载页面。这似乎是“遗传被忽略的角色继承类,有没有人知道角色是否可以被遗传类覆盖?
我也试图避免归因于所有控制器与角色=”管理“
谢谢,基思。
感谢您的建议,我认为创建我自己的授权形式将是一条路。 我这样做是因为应用程序是内部的,它也在我们的公共网站上显示了IFrame中的地图。所以默认情况下只有管理员权限才能公开查看某些控制器。 – 2009-02-11 09:04:43