具有Active Directory身份验证的User.IsInRole

时间:2011-08-19 14:14:02

标签: c# active-directory

我想了解User.IsInRole函数如何与Windows身份验证一起使用。它只是将它们放在一个角色中,还是以某种方式分层?

例如,我有一个名为“GroupB”的域组,该组是“GroupA”的成员,另一个名为“GroupC”的组是“GroupB”的成员。如果我为userA,userB和userC调用User.IsInRole(“GroupB”),它只会为userB返回true吗?那么如果用户是域管理员,IsInRole()总是返回true或false?

我需要这个用于我想为外部合作伙伴创建一个组的情况,并且我希望基于此进行分解(如内部用户的开放式Internet Explorer和外部用户的特殊浏览器,但如果内部用户是域管理员如果User.IsInRole总是为域管理员返回true,它将打开一个特殊的浏览器。出于安全原因,我需要确切知道这是如何工作的。

感谢您的帮助。我搜索过互联网,但未能找到任何相关信息。

3 个答案:

答案 0 :(得分:1)

根据我的经验,除非明确说明,否则这些函数不是递归的。例如UserPrincipal.GetAuthorizationGroups()是递归的。

我不相信User.IsInRole()是。

答案 1 :(得分:0)

我建议浏览本网站及其链接文章。它会对你有很大的帮助。 http://msdn.microsoft.com/en-us/library/z164t8hs(v=VS.71).aspx

答案 2 :(得分:0)

User.IsInRole将在Windows AuthN中进行功能递归。它将取消您的安全令牌,该令牌由AD /本地SAM在登录时构建。该令牌包括您所属的所有群组。

相关问题