Я пытаюсь найти пользователя в LDAP и разрешить его имя в SharePoint PeoplePicker. Пользователь вводит идентификатор пользователя в PeoplePicker, а затем нажимает CheckName. Код вызывает SearchSingleUser () с введенным идентификатором пользователя.
Пример:Я набираю 'xyz' и нажимаю CheckName. Приведенный ниже метод будет искать LDAP пользователей с SamAccountName = 'xyz' для точного соответствия.Если совпадение найдено, он должен разрешить идентификатор в peoplepicker
Если в LDAP есть домен \ xyz, но пользователь вводит xyz, он не будет совпадать и не будет разрешен
Но то, что я вижув том, что имя разрешается наполовину.
Любая подсказка, что мне не хватает в поиске точного соответствия свойства?
Это мой код:
public static string _LDAPSearchDefSingleUser = "(&(objectClass=user)(SamAccountName={0}))";
public static SearchResultCollection SearchSingleUser(string searchPattern)
{
using (DirectoryEntry root = new DirectoryEntry(ldapPath, username, password))
{
root.AuthenticationType = AuthenticationTypes.None;
string filter = string.Format(_LDAPSearchDefSingleUser, searchPattern);
using (DirectorySearcher searcher = new DirectorySearcher(root))
{
searcher.ReferralChasing = ReferralChasingOption.All;
searcher.SearchScope = SearchScope.Subtree;
searcher.Filter = filter;
searcher.PropertiesToLoad.Add("objectclass");
searcher.PropertiesToLoad.Add("SamAccountName");
SearchResultCollection results = searcher.FindAll();
return results;
}
}
}