我有一个功能需要以对 AD LDAP 具有只读访问权限的查询用户身份登录 LDAP。
我能够查询和查找用户并枚举除 memberOf 之外的大多数用户属性。
这只发生在我以只读用户身份登录时。如果我以相关用户身份登录,则可以检索所有属性。任何人有任何想法我做错了什么?
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(sAMAccountName=" + loginName + ")";
search.PropertiesToLoad.Add("CN");
search.PropertiesToLoad.Add("memberOf");
search.PropertiesToLoad.Add("SN");
search.PropertiesToLoad.Add("givenName");
if (_Attributes != null)
{
foreach (string attr in _Attributes)
{
search.PropertiesToLoad.Add(attr);
}
}
SearchResult result = search.FindOne();
if (result == null)
return null;
string usersName = "";
if (result.Properties.Count > 0)
{
if (result.Properties.Contains("CN"))
{
attributes.Add("CN", result.Properties["CN"].Cast<string>().ToList());
usersName = result.Properties["CN"].Cast<string>().FirstOrDefault();
}
if (result.Properties.Contains("SN"))
{
attributes.Add("SN", result.Properties["SN"].Cast<string>().ToList());
}
if (result.Properties.Contains("givenName"))
{
attributes.Add("givenName", result.Properties["givenName"].Cast<string>.ToList());
}
if (result.Properties.Contains("memberOf"))
ad_MemberOf = result.Properties["memberOf"].Cast<string>().ToList();
}
}