我正在使用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);
}
答案 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的直接成员