我是win7系统上的应用程序(ASP.Net v4.0)。我可以通过两种方式连接到Active Directory(在服务器中),例如从Visual Studio 2013进行调试,或者在本地IIS中进行部署。但是,当我在服务器的IIS中发布相同的代码时,它没有连接到Active Directory。
错误:
System.DirectoryServices.DirectoryServicesCOMException(0x8007052E):用户名或密码不正确。位于System.DirectoryServices.DirectoryEntry的System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)\ u000d \ u000a \ u000d \ u000a \ u000d \ u000a .Tind()\ u000d \ u000a at System.DirectoryServices.DirectoryEntry.get_AdsObject()\ u000d \ u000a at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)\ u000d \ u000a at tap.dom.usr.Authentication.ConnectAcitveDirectory(String groupName,String domainName,String serverName,String adminUserName,String queryUserName,String queryPassword)
任何身份验证问题?我是这方面的新手。请帮我。以下是代码:
DirectoryEntry connectionAD = new DirectoryEntry(_serverProtocol + serverName, domainName + "\\" + queryUserName, queryPassword);
DirectorySearcher search = new DirectorySearcher(connectionAD);
search.PageSize = 1001;
search.Filter = "(&(objectClass=user)(SAMAccountName=" + adminUserName + "))";
SearchResultCollection result = search.FindAll();
if (result.Count > 0)
{
foreach (SearchResult item in result)
{
if (item.Properties["SAMAccountName"].Count > 0
&& Convert.ToString(item.Properties["distinguishedName"][0]).Contains("OU=" + groupName))
return "Active Directory is all set up! User was authenticated~0";
}
}
错误的原因是什么?
答案 0 :(得分:0)
您是否在web.config文件中配置了模拟?
<identity impersonate="true" />
这会导致ASP.NET模拟配置为的帐户 来自Microsoft Internet Information Services的匿名帐户 (IIS)。由于这种配置,所有请求都是这样的 应用程序在配置的帐户的安全上下文下运行。 用户提供凭据以对Active进行身份验证 目录,但访问Active Directory的帐户是 配置帐户。
您可以在Microsoft支持文章中阅读更多内容:http://support.microsoft.com/en-us/kb/326340