Привет, у меня есть активный каталог, который установлен на машине, которая принадлежит к другому домену, чем домен, на котором я занимаюсь разработкой.
И между двумя доменами нет доверительных отношений.
Допустим, этот домен называется 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}))", "[email protected]") };
SearchResultCollection users = ds.FindAll();
Я пробовал все типы AuthenticationTypes, и ничего не помогло. Любая идея, пожалуйста
unknown user name or password
. Я очень рекомендую вам попробовать и что-то подобное. - person Uwe Keim   schedule 05.02.2011