Имя группы AD с символом '/' разрывает мою привязку - PullRequest
0 голосов
/ 22 мая 2009

Я получаю свойство memberOf для моего пользователя, используя этот код:

DirectorySearcher search = new DirectorySearcher(new DirectoryEntry(connectionString));
search.Filter=string.Format("(&(sAMAccountName={0})(objectClass=user))",userName);
SearchResult result = search.FirndOne();

Пока все хорошо. Однако затем я должен получить значение cn для каждой группы, членом которой является пользователь: я делаю это в цикле над свойством memberOf.

List<string> groupList = new List<string>();
DirectoryEntry user = result.GetDirectoryEntry();

foreach(string groupPath in user.Properties["memberOf"])
{
    DirectoryEntry groupBinding = new DirectoryEntry("LDAP://"+groupPath);
    DirectorySearcher groupSearch = new DirectorySearcher(groupBinding);
    DirectoryEntry gorupEntry = groupSearch.FindOne().GetDirectoryEntry();
    groupList.Add(groupEntry.Properties["cn"].Value.ToString()));
}

Проблема в том, что когда groupPath содержит символ '/', groupSearch.FindOne() выдает исключение.

Как мне выбрать символ /, чтобы я мог искать эту группу?

1 Ответ

1 голос
/ 22 мая 2009

используйте обратную косую черту, чтобы убежать, так что /

Кредит: http://www.rlmueller.net/CharactersEscaped.htm

...