您好 我有一个活动目录,安装在属于不同域的机器上,而不是我正在开发的域。
两个域之间没有信任关系。
假设该域名为“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,但没有任何效果 请知道
答案 0 :(得分:0)
我发现了问题 这是非常愚蠢的 域名应为大写,因此用户名应为TEST \ administrator
我很惊讶会员提供商能够解决这个问题。