1

c#(VS 2008/3.5 フレームワーク)を使用して開発された Web アプリケーションがあります。アプリケーションは、ドメイン (Domain1) に存在するサービス アカウントを使用して "Windows" として認証モードを使用し、ASP.Net ユーザーとしてアプリケーションを実行します。別のドメイン (ドメイン 2) に存在するユーザーに対して認証を行う必要があります。ディレクトリサービス(Directory searcher)を利用して認証を行うと、domain1のLDAPに接続してバインドすることができ、ユーザーが認証されます。また、ユーザーがドメイン 1 からドメイン 2 に移行された場合、ユーザーを認証できます。ただし、ドメイン 2 で直接作成されたユーザー ID がある場合、アプリケーションはドメイン 2 にバインドできません (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

クロス ドメイン認証を試行しています。

How does Authentication Work Cross Domain?の記事を読んでください。. 問題を解決するためのヒントを提供します。

于 2014-01-15T17:27:28.293 に答える