Привет
У меня есть активный каталог, который установлен на компьютере, который принадлежит к другому домену, чем домен, на котором я занимаюсь разработкой.
И нет никаких доверительных отношений между двумя доменами.
Допустим, этот домен называется "test.com".
существует администратор с именем «test \ administrator» с паролем «admin_password»
Когда я установлю эти настройки с ActiveDirectoryMembershipProvider, я смогу получить доступ и войти в этот Active Directory и проверить пользователей.
Я использую эти настройки
<configuration>
<connectionStrings>
<add name="ADService" connectionString="LDAP://test.com"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms"> </authentication>
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<add name="AspNetActiveDirectoryMembershipProvider" connectionStringName="ADService" connectionUsername="test\administrator" connectionPassword="admin_password"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
connectionProtection="None" requiresUniqueEmail="false" enableSearchMethods="true" applicationName="/"/>
</providers>
</membership>
</configuration>
Но когда я пытаюсь написать код из того же веб-приложения или из другого приложения и получить доступ к активному каталогу из кода, я получаю сообщение об ошибке, что при входе в систему произошел сбой, неизвестное имя пользователя или пароль.
и это мой код
DirectoryEntry de = new DirectoryEntry("LDAP://test.com", "test\administrator", "admin_password", AuthenticationTypes.ServerBind);
var ds = new DirectorySearcher(de) { Filter = string.Format("(&(objectClass=user)(sAMAccountName={0}))", "user1@test.com") };
SearchResultCollection users = ds.FindAll();
Я перепробовал все типы AuthenticationTypes, но ничего не получалось
Любая идея, пожалуйста