加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何使用activedirectorymembershipprovider在as

发布时间:2020-12-16 00:17:08 所属栏目:asp.Net 来源:网络整理
导读:在我的asp.net mvc应用程序中,我正在使用activedirectorymembershipprovider.在活动目录中,我创建了几个类似的角色(组),为了简化本例,“普通”和“管理员”. 我目前通过获取httpcontext的IPrincipal并调用User.IsInRole(nameOfRoleGoesHere);来查询用户是否
在我的asp.net mvc应用程序中,我正在使用activedirectorymembershipprovider.在活动目录中,我创建了几个类似的角色(组),为了简化本例,“普通”和“管理员”.

我目前通过获取httpcontext的IPrincipal并调用User.IsInRole(nameOfRoleGoesHere);来查询用户是否在角色中.

我正在寻找的行为是让我能够询问用户是否处于角色“管理员”,然后隐含地询问用户是否处于以下所有角色(在这种情况下,角色“正常”将低于“管理员”).
由于我的角色主要是垂直的(如果这有任何意义),这种角色继承似乎对我的应用程序有意义.

我怎么能得到这种行为 – 我必须实现一些自定义逻辑,允许我要求角色“管理员”,但抽象实际上在幕后的活动目录中要求“正常”和“管理员” – 或者是否可以活动目录中的结构组以某种方式自动给我这个行为?

对于我对asp.net,活动目录和.net安全的任何严重误解表示歉意 – 我是菜鸟和实验.

解决方法

AD支持组成为另一组成员的概念?

所以你可以拥有以下内容:

用户:安妮,鲍勃,查理,道格拉斯,艾略特,弗雷德和乔治.

角色:普通,编辑,管理员

然后在定义每个组为:

管理员有以下成员:乔治

编辑有以下成员:“管理员”,艾略特

普通有以下成员:“编辑”,“管理员”,安妮,查理

因此,您知道George是Normal,Editor和Admin的成员,因为Admin的所有成员都包含在这些组中,而Douglas只是Editor和Normal的成员,而Anne只是普通用户,AD会说“是的,乔治是普通用户”,如果你问的话.

但是:据我所知,没有(据我所知)官方的,MS支持的ActiveDirectory RoleProvider,它将使用正确的AD角色填充RolesPrinciple–有几个你有什么定义为你的角色提供者?

默认的ASP.NET角色提供程序不支持角色层次结构,因此您可能需要:

>将用户置于他们有权访问的每个角色中,并仅检查您感兴趣的角色.
>将用户置于他们可以访问的最强大角色中,然后检查应该具有访问权限的每个角色.
>编写/查找支持层次结构的role provider – 如果用户处于更高阶的角色,则返回true.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读