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 認証中に例外がスローされました: ユーザー名が不明か、パスワードが正しくありません。