【问题标题】:Using .Net Membership / Roles to support customized authorization/access rules使用 .Net Membership / Roles 支持自定义授权/访问规则
【发布时间】:2012-02-23 18:13:32
【问题描述】:

我正在编写一个支持可自定义用户和角色的应用程序。通过可定制,我的意思是将提供一个管理表单,允许添加用户、创建角色、将用户分配给角色,以及最重要的是将授权规则与角色相关联的能力。在查看角色时,将向管理员显示一系列复选框,例如,允许他们根据自己的判断为程序功能区域授权角色。我需要能够在应用程序中编写代码,例如:

if (!currentUser.IsAuthorizedTo(AuthorizationRules.ADD_ORDER))
//Show not authorized message or prompt for elevation

IsAuthorizedTo 将查看当前用户的角色并确定其中任何人是否具有必要的授权。

我查看了 API 文档,只发现了 web.config 授权部分,这不是最佳的。我猜我可能不得不自己动手,但我想我应该先问:

是否有使用 .net 会员/角色 api 或其他建议系统(.net 会员 api 除外)的现有方法来允许基于角色和访问规则的细粒度授权?

【问题讨论】:

    标签: c# asp.net-membership authorization user-roles granularity


    【解决方案1】:

    AuthorizeAttribute 有一个可能有用的Roles 属性。它会将某些控制器或操作限制为指定的角色。

    更多here.

    更新:

    这是来自NerdDinner 项目的示例:

    [Authorize(Roles="admin")]
    public ActionResult Create() {
        ...
    }
    

    【讨论】:

    • 这很有趣,但它不允许运行时自定义。角色需要在编译时定义,我的用例不允许这样做。我需要能够在运行时定义角色及其授权。不过,谢谢。
    【解决方案2】:

    我认为您应该使用自定义授权Filters,然后 OnAuthorization 执行您的逻辑来检查当前用户是否有权访问当前操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-07
      • 2017-01-25
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 2013-11-16
      • 2013-08-23
      • 1970-01-01
      相关资源
      最近更新 更多