我正在为我的 asp.net mvc 项目使用角色管理器和 windows 身份验证,我们有 2 个角色,它们是 viewers 和 Editors 。
<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)
它不起作用,它不允许查看者访问任何现在有意义的操作。
我认为在每个操作的顶部重复 Authorize 属性并不是一个好主意。
你能告诉我是否有更好的解决方案