Language

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

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

返品

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

例外

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

注釈

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

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

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

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

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

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

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

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

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

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

Important

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

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

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

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

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

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

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

適用対象

こちらもご覧ください