0

このプロジェクトを作成して、社内のイントラネットに展開します。このコードを使用して、ユーザーのログインを認証しています。

entry.Username = strUserName;
entry.Password = strPassword;

DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = "(objectclass=user)";
try
{
    searcher.FindOne();
    return true;
}

私のローカルホストでは問題なく動作していますが、イントラネットにデプロイするとログインできません。

私の質問は、イントラネット経由でディレクトリにアクセスできますか? またはこれを達成するためのより良い方法はありますか?

4

2 に答える 2

1

より簡単な方法はSystem.DirectoryServicesSystem.DirectoryServices.AccountManagement

ブール値を返す関数でこれを使用します。

Dim context As PrincipalContext = New PrincipalContext(ContextType.Domain, domainName)
If context.ValidateCredentials(userAlias, userPassword, ContextOptions.Negotiate) Then
    Return True
Else
    Return False
End If

スニペットは VB ですが、おわかりいただけたでしょうか。domainNameをドメイン名に、userAliasをユーザー名に、userPasswordをパスワードに置き換えます。

于 2013-07-18T06:23:57.677 に答える