我正在使用角色管理和Windows身份验证来完成我的ASP.NET MVC项目,我们有两个角色,即观看者和编辑者。
<authentication mode="Windows" />
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<clear />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
编辑者可以访问整个应用程序,但查看者只能访问两个操作。
我最初尝试为基本控制器放置Authorize属性,这只允许编辑者访问所有内容:
[Authorize(Roles = "Editors")]
public class BaseController : Controller
然后在这两个操作中添加Authorize属性:
[Authorize(Roles = "Viewers,Editors")]
public ActionResult Report(PaymentsUnallocatedAndQueriedModel model)
它无法正常工作,不允许查看者访问任何有意义的操作。
我认为在每个操作的顶部重复授权属性并不是一个好主意。
请告诉我是否有更好的解决方案。