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, используя контекст безопасности внешней службы.