0
using (PrincipalContext Context = new PrincipalContext(ContextType.Domain, DomainURL, UserName, Password)) 
    { 
     UserPrincipal Account = new UserPrincipal(Context); 
     Account.GivenName = strFirstName; 
     Account.Surname = strLastName; 

     PrincipalSearcher srch = new PrincipalSearcher(Account); 
     foreach (var principal in srch.FindAll()) 
     { 
      var p = (UserPrincipal)principal; 
      String FirstName = p.GivenName; 
      String LastName = p.Surname; 
     }    
    } 

Как видно из фрагмента кода выше, я хочу, устанавливающий соединение с Active Directory в домене, предоставляя UserName & пароля в Конструктор PrincipalContext.Установление соединения с Active Directory с помощью PrincipalContext в контексте безопасности внешней службы

После подключения я запрашиваю подключенный Active Directory для FirstName и LastName.

Если я не передаю пароль UserName &, конструктор PrincipalContext будет использовать учетные данные учетной записи, запускающей пул приложений, в котором будет запущено приложение asp.net в IIS, для подключения к Active Directory.

Но мне интересно, если можно создать какой-либо сервис, работающий под учетной записью, имеющей доступ к запрашиваемому домену, а затем использовать эту информацию об учетной записи хостинга служб (имя пользователя &) для подключения к AD вместо передавая имя пользователя и passowrd непосредственно, как указано выше.

Предполагая, что кто-то разворачивает службу, скажем в IIS &, эта служба работает в контексте учетной записи X, и эта учетная запись X имеет доступ к домену, который я хочу запросить, можно ли вызвать эту службу в PrincipalContext конструктор, так что я использую учетные данные, под которыми работает служба, для подключения к AD, который я хочу запросить.

Мое намерение здесь состояло в том, чтобы не предоставлять имя пользователя &, но также избегать использования учетных данных, в которых запущен пул приложений, на котором размещается приложение ASP.NET.

Я хочу установить соединение с AD, используя контекст безопасности внешней службы.

ответ

0

Если вы используете PrincipalContext только с

PrincipalContext(ContextType.Domain, DomainURL) 

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

См. this MSDN link для получения дополнительной информации.

Смежные вопросы