Войдите в активный каталог

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

И между двумя доменами нет доверительных отношений.

Допустим, этот домен называется 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, и ничего не помогло. Любая идея, пожалуйста


person Ghassan Karwchan    schedule 04.02.2011    source источник
comment
Раньше мне удавалось решать подобные проблемы, только работая вместе с администратором сервера Active Directory. Обычно он активировал регистрацию событий, и тогда мы видели настоящую причину сообщения unknown user name or password. Я очень рекомендую вам попробовать и что-то подобное.   -  person Uwe Keim    schedule 05.02.2011
comment
Попробуйте @test \ administrator или test \\ administrator вместо test \ administrator. Вы набираете \ персонажа.   -  person Harvey Kwok    schedule 05.02.2011


Ответы (1)


Я обнаружил, что проблема в том, что это было очень глупо, доменное имя должно быть заглавным, поэтому имя пользователя должно быть TEST \ administrator

Я удивлен, что поставщик услуг членства смог с этим справиться.

person Ghassan Karwchan    schedule 04.02.2011