使用.Net Membership / Roles支持自定义授权/访问规则

时间:2012-02-01 01:24:28

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

更多here

<强>更新

以下是NerdDinner项目的一个示例:

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

答案 1 :(得分:0)

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