Передача пустых строк или нулей в конструктор DirectoryEntry - PullRequest
2 голосов
/ 27 января 2012

Заметил странную вещь сегодня. У меня есть такой код в проекте, над которым я работаю:

var directoryEntry =new DirectoryEntry(
    ConfigurationManager.AppSettings["path"],
    ConfigurationManager.AppSettings["user"], 
    ConfigurationManager.AppSettings["password"]
);

Это часть библиотеки классов. Когда я использовал эту библиотеку из другого проекта, я забыл определить эти ключи в файле .config для приложения / сайта, но он все еще работал.

Я подозреваю, что этот конструктор работает аналогично конструктору PrincipalContext http://msdn.microsoft.com/en-us/library/bb298328.aspx, в том смысле, что он использует учетные данные текущего пользователя, если вы передаете пустые значения, хотя документация MSDN ничего об этом не говорит.

Кто-нибудь может подтвердить или опровергнуть это?

1 Ответ

0 голосов
/ 27 января 2012

Этот пример кода не вызывает исключение, но это не значит, что он обязательно работает.Конструктор DirectoryEntry не выполняет никакой проверки подлинности или проверки значений, которые ему передаются.Вместо этого он просто сохраняет эти значения, которые он позже попытается использовать для выполнения запроса на сервере.

Этот конкретный код не сгенерирует или завершится с ошибкой с пустыми строками, но любой вызов, который вызывает привязку к серверу, с большой вероятностью завершится неудачей.

...