ASP.NET安全角色和权限

AJM*_*AJM 6 asp.net asp.net-membership

我对ASP.NET安全模型感到满意,根据它们所处的角色,可以允许/拒绝访问web.config中的用户.

<system.web>
  <authorization>
    <allow roles = "Admin" />
  </authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)

但是,我想要做的是给管理员用户一组权限,然后可以检查,例如具有"可以打印文档","可以删除文档"等权限的管理员用户

这种事情可以开箱即用,还是我需要沿着自定义路线走?

blo*_*art 2

它不是开箱即用的。但如果您想要更细化,为什么不使用“CanPrint”、“CanDelete”等细化角色,而不是“Admin”等更广泛的角色呢?

如果他们想要一个容器类型场景,正如您在评论中指出的那样,您可以设置一个自定义 IPrincipal - 在身份验证之后,并且对于每个新请求,您都会查看用户的角色成员身份(“管理员”、“公共”等),然后覆盖您的 IPrincipal 上的 IsInRole。你可以在这里找到一个例子