首页 文章

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

提问于
浏览
0

我有一个应用程序(ASP.Net v4.0),它在win7系统上 . 我可以通过两种方式连接到Active Directory(在服务器中),例如从Visual Studio 2013进行调试,或者在本地IIS中进行部署 . 但是当我在服务器的IIS中发布相同的代码时,它没有连接到Active Directory .

错误:

System.DirectoryServices.DirectoryServicesCOMException(0x8007052E):用户名或密码不正确 . 在System.DirectoryServices.DirectoryEntry.Bind上的System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)\ u000d \ u000a中\ u000d \ u000a \ u000d \ u000a ()\ 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

    您是否在web.config文件中配置了模拟?

    <identity impersonate="true" />
    

    这会导致ASP.NET模拟从Microsoft Internet信息服务(IIS)配置为匿名帐户的帐户 . 作为此配置的结果,对此应用程序的所有请求都在配置的帐户的安全上下文中运行 . 用户提供凭据以对Active Directory进行身份验证,但访问Active Directory的帐户是已配置的帐户 .

    您可以在Microsoft支持文章中阅读更多内容:http://support.microsoft.com/en-us/kb/326340

相关问题