asp.net-mvc – 如何使用activedirectorymembershipprovider在asp.net mvc应用程序中实现角色层次结构

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 如何使用activedirectorymembershipprovider在asp.net mvc应用程序中实现角色层次结构前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的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.

原文链接:https://www.f2er.com/aspnet/251891.html

猜你在找的asp.Net相关文章