Active Directory-用户不是他们所在的组的成员

时间:2018-09-25 20:07:04

标签: c# active-directory

我正在使用GetAuthorizationGroups获取特定用户的组列表,但是当我检查该用户是否是这些组的成员时,有时会出错。那么下面的tttt为什么是假的?

var ADContext = new PrincipalContext(ContextType.Domain, "");
var userIdentity = UserPrincipal.FindByIdentity(ADContext, IdentityType.SamAccountName, userName);

var groups = userIdentity.GetAuthorizationGroups().OfType<GroupPrincipal>();
foreach (var group in groups)
     {
         var tttt = userIdentity.IsMemberOf(group);

      }

1 个答案:

答案 0 :(得分:0)

您是否嵌套了组成员身份? GetAuthorizationGroups返回一个recursive list of group memberships。我相信IsMemberOf检查直接成员身份。

作为示例,我创建一个GroupA。 GroupB是GroupA的成员,而我也是GroupB的成员:

GetAuthorizationGroups将返回GroupA和GroupB

IsMemberOf(GroupB)将为true,因为我 am 是GroupB的直接成员

IsMemberOf(GroupA)将为false,因为我不是 GroupB的直接成员