'的memberOf'是Active Directory用户帐户中的属性,用于描述用户的组成员身份详细信息。如果我们使用.Net或Java来获取用户详细信息,那么我们会得到'成员'根据“杰出名称”的属性值'用户所属的组的成员。那么有没有办法在JAVA或.NET中以objectGUID的形式获得这些组名?
答案 0 :(得分:4)
您可以使用“扩展DN”LDAP扩展控件。它只能在AD搜索中使用。
C#代码:
// Here I get the user object and then do a AD search.
// Instead, you may search for that user object directly.
DirectoryEntry userEntry = new DirectoryEntry("LDAP://<server>/<user DN>", "user", "pwd");
DirectorySearcher searcher = new DirectorySearcher(userEntry);
searcher.SearchScope = SearchScope.Base;
searcher.ExtendedDN = ExtendedDN.Standard;
searcher.PropertiesToLoad.Clear();
searcher.PropertiesToLoad.Add("memberOf");
SearchResult result = searcher.FindOne();
foreach (string val in result.Properties["memberOf"])
{
Console.WriteLine(val);
}
根据传递给 ExtendedDN 的值,它将返回值
<GUID=guid_value>;<SID=sid_value>;dn
ExtendedDN.None (仅限DN,这是默认设置):
CN=Administrator, CN=Users,DC=Fabrikam,DC=com
ExtendedDN.Standard (标准字符串格式):
<GUID=bdbfd4b3-453c-42ee-98e2-7b4a698a61b8>;<SID=S-1-5-21-2354834273-1534127952-2340477679-500>;CN=Administrator, CN=Users,DC=Fabrikam,DC=com
ExtendedDN.HexString (十六进制格式):
<GUID=b3d4bfbd3c45ee4298e27b4a698a61b8>;<SID=01050000000000051500000061eb5b8c50ef705befda808bf4010000>;CN=Administrator, CN=Users,DC=Fabrikam,DC=com
如果对象没有SID,则将省略SID部分:
<GUID=guid_value>;dn
有关扩展DN的详细信息,请检查: