1

我们有一个使用 c#(VS 2008/3.5 框架)开发的 Web 应用程序。该应用程序使用“Windows”身份验证模式,并使用域 (Domain1) 中存在的服务帐户以 ASP.Net 用户身份运行应用程序。我们要对存在于不同域(域 2)中的用户进行身份验证。使用目录服务(目录搜索器)完成身份验证后,我们可以连接到 domain1 的 LDAP 并绑定它,以便对用户进行身份验证。此外,如果用户已从 domain1 迁移到 domain 2,则用户可以进行身份​​验证。但是,如果在 domain 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 身份验证期间抛出异常:未知用户名或错误密码。

4

1 回答 1

0

您正在尝试跨域身份验证

阅读身份验证如何跨域工作?. 它将为您提供如何解决问题的提示。

于 2014-01-15T17:27:28.293 回答