登录到活动目录

时间:2011-02-04 21:57:21

标签: asp.net active-directory activedirectorymembership

您好 我有一个活动目录,安装在属于不同域的机器上,而不是我正在开发的域。

两个域之间没有信任关系。

假设该域名为“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>

但是当我尝试从同一个Web应用程序或其他应用程序编写代码,并尝试从代码访问活动目录时,我收到登录失败,未知用户名或密码的错误。

这是我的代码

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,但没有任何效果 请知道

1 个答案:

答案 0 :(得分:0)

我发现了问题 这是非常愚蠢的 域名应为大写,因此用户名应为TEST \ administrator

我很惊讶会员提供商能够解决这个问题。