Share via


ActiveDirectoryMembershipProvider.ValidateUser(String, String) メソッド

定義

指定したユーザー名とパスワードが Active Directory データ ストアに存在しているかどうかを検証します。

public:
 override bool ValidateUser(System::String ^ username, System::String ^ password);
public override bool ValidateUser (string username, string password);
override this.ValidateUser : string * string -> bool
Public Overrides Function ValidateUser (username As String, password As String) As Boolean

パラメーター

username
String

検証するユーザーの名前。

password
String

指定したユーザーのパスワード。

戻り値

指定した usernamepassword が有効な場合は true。それ以外の場合は false。 指定したユーザーが Active Directory データ ストア内に存在しない場合、ValidateUser(String, String) メソッドは false を返します。

例外

ValidateUser(String, String) インスタンスが初期化される前に ActiveDirectoryMembershipProvider メソッドが呼び出されました。

注釈

このメソッドは、 クラスによって呼び出され Membership 、Active Directory データ ストアに対してユーザーの資格情報を検証します。

プロパティが EnablePasswordResettrue 、指定された資格情報が有効な場合、無効なパスワード応答に対するユーザーの追跡カウンターがリセットされます。

次の ValidateUser 状況では、正しい資格情報が指定されると、 メソッドからが返 false される場合があります。

  1. ログオン試行の失敗が多すぎるため、ユーザー アカウントがディレクトリ サーバーによってロックアウトされました。 ユーザーは、ディレクトリのロックアウト期間が経過するまでログオンできません。

  2. プロパティが EnablePasswordReset の場合、 trueユーザーが不適切なパスワード応答を何度も指定した場合、ユーザー アカウントはロックされます。 ユーザーのアカウントは、 プロパティで指定された時間が経過した後にロックを PasswordAnswerAttemptLockoutDuration 解除します。

  3. ユーザーは、接続文字列で指定されたコンテナーに存在する必要があります。 有効な資格情報は、別のコンテナーまたは別のドメインにあるユーザー アカウントに対して提供されます。 ユーザーは、接続文字列で指定されたコンテナーに存在する必要があります。

ユーザーを検証する場合、プロバイダーは、アプリケーション構成ファイルで構成された資格情報ではなく、指定したユーザー名とパスワードを使用して Active Directory データ ストアに接続して資格情報を検証します。

ただし、次の ActiveDirectoryMembershipProvider 理由により、インスタンスは構成された資格情報を使用してディレクトリに接続します。

  • インスタンスの接続文字列によって決定された検索スコープ内にユーザーが ActiveDirectoryMembershipProvider 存在することを確認します。 プロバイダーは、接続文字列で指定された検索ポイントから始まるサブツリー検索を使用して、ユーザーが存在するかどうかを判断します。 ユーザーは、指定されたコンテナーに存在する必要があります。 接続文字列の指定されたコンテナーの外部で有効な資格情報は検証されません。 接続文字列の ActiveDirectoryMembershipProvider 詳細については、クラスのトピックを参照してください。

  • プロパティが EnablePasswordResetActiveDirectoryMembershipProvider場合、trueインスタンスは構成された資格情報を使用してユーザー インスタンスを読み込み、パスワード応答の変更に失敗した試行が多すぎるため、ユーザーがロックアウトされているかどうかを確認します。

重要

"ゲスト" アカウントが有効になっている Active Directory ドメイン コントローラーへの接続は、セキュリティ上の潜在的な脅威です。 "ゲスト" アカウントが有効になっている Active Directory ドメイン コントローラーで行われた検証の試行はすべて成功します。 Active Directory ドメイン コントローラーを使用するときのセキュリティを強化するには、ドメイン コントローラーで "ゲスト" アカウントを無効にする必要があります。

ActiveDirectoryMembershipProvider次のいずれかの条件が満たされると、インスタンスは Active Directory に対して同時バインドを試行します。

さらに、同時バインドを行うには、次の条件が満たされている必要があります。

  • ディレクトリ サーバーは Windows Server 2003 で実行されている必要があります。

  • インスタンスを実行している ActiveDirectoryMembershipProvider Web サーバーのオペレーティング システムは、同時実行バインド (Windows Server 2003 など) をサポートする必要があります。

同時実行バインドを使用する場合、ユーザーの最後のログオン日はディレクトリで更新されません。したがって、 プロパティは LastLoginDate 依存できません。

先頭と末尾のスペースは、 パラメーターから username トリミングされます。

適用対象

こちらもご覧ください