获取用户所在的AD组列表
本文关键字:AD 列表 用户 获取 | 更新日期: 2023-09-27 18:14:24
我有这个;
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, httpContext.User.Identity.Name);
PrincipalSearchResult<Principal> authgroups = user.GetAuthorizationGroups();
PrincipalSearchResult<Principal> userGroups = user.GetGroups();
它在一定程度上起作用。然而,我回来的小组并不像我所期望的那样。
在命令提示符中使用gpresult /V
,我得到了一个列表,看起来像;
BUILTIN'Administrators
Everyone
SQLServerMSSQLServerADHelperUser$ITVN1259
BUILTIN'Users
但是使用代码给我;
Name ( "zz.Enterprise Vault Users Group 3" )
Name ( "CM-InternetAccessUsers(C)-SZ" )
如何获得与gpresult相同的列表?
我使用这样的东西-我认为你只错过了SamAccountName
部分:
public string[] Groups
{
get { return UserPrincipal.Current.GetAuthorizationGroups()
.Select(e => e.SamAccountName)
.ToArray(); }
}
EDIT:使用GetAuthorizationGroups()
代替GetGroups()
进行递归搜索(只返回安全组,不返回分布组)。