在IIS中部署应用程序时无法访问Active Directory

时间:2015-03-25 08:15:01

标签: c# asp.net iis

我是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";
    }
}

错误的原因是什么?

1 个答案:

答案 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