2

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

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

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

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

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

4

2 回答 2

0

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

于 2013-02-13T14:01:54.960 回答
0

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

更多在这里

更新:

以下是来自NerdDinner项目的示例:

[Authorize(Roles="admin")]
public ActionResult Create() {
    ...
}
于 2012-02-01T01:33:42.463 回答