LDAP—不能访问目录

本文关键字:访问 不能 LDAP | 更新日期: 2023-09-27 18:11:34

我有一个ASP。. NET MVC项目使用LDAP对用户进行身份验证。在开发服务器上,身份验证工作正常,但在生产服务器上,它不起作用。

我之前已经将项目部署到生产环境中,LDAP没有问题。然后我再次部署,但我在部署之前更新了NuGet包管理器中的所有包。但这行不通。

在我使用更新包部署新项目之前,我已经在开发服务器上测试了它,没有任何问题。问题似乎是我无法访问生产服务器中的LDAP路径。

<appSettings>部分:

<appSettings>
    <add key="FolderPath" value="Files/" />
    <add key="DirectoryPath" value="LDAP://blabla.bla.bla:389/CN=Users,DC=blabla,DC=bla,DC=bla" />
    <add key="DirectoryDomain" value="bla" />
    <add key="UserPermission" value="blabla" />
</appSettings>

这是认证码

public bool AuthenticateUser(string domain, string username, string password, string LdapPath, string userPermission)
{         
    string domainAndUsername = domain + @"'" + username;
    DirectoryEntry entry = new DirectoryEntry(LdapPath, domainAndUsername, password);
    try
    {
        Object obj = entry.NativeObject;
        DirectorySearcher search = new DirectorySearcher(entry);
        search.Filter = "(SAMAccountName=" + userPermission + ")";
        search.PropertiesToLoad.Add("cn");
        SearchResult result = search.FindOne();
        if (null == result)
        {
            return false;
        }
        LdapPath = result.Path;
        string _filterAttribute = (String)result.Properties["cn"][0];
        if (_filterAttribute != userPermission) 
            return false;
    }
    catch (Exception ex)
    {
        return false;
        throw new Exception("Error authenticating user. " + ex.Message);
    }
    return true;
}

开发和生产之间唯一不同的设置是DirectoryPathUserPermission值。

对不起,我的英语不好。

谢谢。

LDAP—不能访问目录

第一个愚蠢的问题,开发和生产服务器使用相同的DNS吗?
如果没有,可以"blabla.bla"。bla"是由生产服务器使用的DNS解析(只是尝试ping "blabla.bla.bla")?

如果DNS不能解析该名称,那么它将连接失败。