我们使用c#(VS 2008 / 3.5框架)开发了一个Web应用程序。应用程序将身份验证模式用作“Windows”,域(Domain1)中存在服务帐户,以ASP.Net用户身份运行应用程序。我们要为不同域(域2)中的用户进行身份验证。使用目录服务(目录搜索器)完成身份验证时,我们可以连接到domain1的LDAP并绑定它,以便对用户进行身份验证。此外,如果用户已从domain1迁移到域2,则可以对用户进行身份验证。但是,如果在域2中直接创建了用户ID,则应用程序无法绑定到Domain2(在LDAP身份验证期间)因此,该用户未被应用程序验证。请提出相同的解决方案。
<authentication mode="Windows"/>
<identity impersonate="true" userName="domain1\svc_acc" password="***"/>
public bool ValidateUidPwdAndGetUserTypeGlobal(string TPXId, string password)
{
string strADPath = "LDAP://a.b.c/dc=a,dc=b,dc=c";
try
{
DirectoryEntry objDirEntry = new DirectoryEntry(strADPath, TPXId, password);
DirectorySearcher search = new DirectorySearcher(objDirEntry);
search.Filter = "(samaccountname=" + TPXId + ")";
SearchResult result = search.FindOne();
if (null == result)
{
return false;
}
else
return true;
}
catch (Exception ex)
{
return false;
}
}
LDAP身份验证期间抛出异常:未知用户名或密码错误。