当我使用GetGroups而不是GetAuthorizationGroup时,它会很好,但即使给定用户存在组,后者也会检索无。我使用的代码如下:
string userName = "userid";
PrincipalContext yourDomain = CurrentPrincipalContext;
UserPrincipal user = UserPrincipal.FindByIdentity(yourDomain, userName);
PrincipalSearchResult<Principal> groups = user.GetGroups();//user.GetAuthorizationGroups();
List<GroupPrincipal> result = groups.Select(x => (GroupPrincipal)x).ToList();
return result.Select(g => g.Name).ToList();
我可以使用GetGroups,但是GetGroups方法在localhost中检索数据,但在将其推送到IIS 6.0时不会获取任何数据,因此我必须坚持使用GetAuthorizationGroups。
请帮帮我....
答案 0 :(得分:0)
由于ActiveDirectory中的过时SID,GetAuthorizationGroups失败。由于GetAuthorizationGroups以递归方式工作,因此它可以是顶级SID,也可以是附加到顶级组的SID。我要包含一个希望有所帮助的链接。
注意:我也被告知GetAuthorizationGroups将结果缓存某个地方一段时间,并且无法手动清除。因此,我不得不编写代码来搜集群组。