Active Directory サーバーに対してユーザーを認証する Web アプリケーションを開発しています。その AD サーバーのドメインで開発用 PC からコードを実行すると、コードはスムーズに実行されます。VPN を使用してまったく別のネットワークからコードを実行する必要がありますが、開発用 PC はその AD に接続されていません。AD サーバーにアクセスしようとすると、次のエラーが発生します。
指定されたドメインが存在しないか、接続できませんでした。
私の VPN は正常に動作しています。この VPN を使用してリモート デスクトップにアクセスできました。問題を解決するには少し調整が必要であることはわかっていますが、見つけることができませんでした。次のリンクをたどりましたが、解決策が見つかりませんでした。
以下は私の設定ですweb.config
<appSettings>
<add key="LDAPPath" value="LDAP://DC=MYSERVER,DC=COM" />
<add key="ADGroupName" value="Analyst"/>
</appSettings>
ここに私のコードがあります
public class LdapAuthentication
{
private string _path;
private string _filterAttribute;
public LdapAuthentication()
{
_path = System.Configuration.ConfigurationManager.AppSettings["LDAPPath"].ToString();
}
public bool IsAuthenticated(string username, string pwd)
{
try
{
DirectoryEntry entry = new DirectoryEntry(_path, username, pwd);
entry.Path = _path;
entry.Username = username;
entry.Password = pwd;
// Bind to the native AdsObject to force authentication.
object obj = entry.NativeObject;
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + username + ")";
search.PropertiesToLoad.Add("cn");
SearchResult result = search.FindOne();
if (null == result)
{
return false;
}
// Update the new path to the user in the directory.
_path = result.Path;
_filterAttribute = (string)result.Properties["cn"][0];
}
catch (Exception ex)
{
throw new Exception("Error authenticating user. " + ex.Message);
}
return true;
}
}
どんな助けでも大歓迎です。ありがとうございました。