次の方法で共有


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

定義

ユーザーのパスワードをリセットして、自動的に生成された新しいパスワードにします。

public:
 override System::String ^ ResetPassword(System::String ^ username, System::String ^ passwordAnswer);
public override string ResetPassword (string username, string passwordAnswer);
override this.ResetPassword : string * string -> string
Public Overrides Function ResetPassword (username As String, passwordAnswer As String) As String

パラメーター

username
String

パスワードをリセットするユーザー。

passwordAnswer
String

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

戻り値

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

例外

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

EnablePasswordReset プロパティ値が false である。

passwordAnswernullです。

または

usernamenullです。

トリム後の passwordAnswer が空です。

- または -

passwordAnswer が 128 文字を超えています。

- または -

username が空であるか、ユーザー名の許容最大長 (通常は 256 文字) を超えています。

- または -

username はコンマを含んでいます。

- または -

ユーザー名は userPrincipalName にマップされていますが、username パラメーターに円記号が含まれています。

無効なログオン試行が所定の回数行われたか、またはパスワードの解答によるリセット試行が所定の回数行われたため、ユーザーがロックアウトされています。

- または -

passwordAnswer は、格納されているパスワードの解答と一致しません。

username に指定されたユーザーが Active Directory データ ストアに存在しません。

- または -

生成されたパスワードがカスタム検証ハンドラーに合格しませんでした。

- または -

生成されたパスワードが Active Directory サーバーで設定されているカスタム パスワード ポリシーの複雑さの基準を満たしていません。

- または -

新しいパスワードを設定するために Active Directory Application Mode サーバーにセキュリティで保護された接続を確立できません。

ハンドルされていない例外が発生しました。

注釈

メソッドは、 クラスによって呼び出され Membership 、Active Directory データ ストア内のユーザーのパスワードを新しいランダムに生成された値にリセットします。 新しいパスワードが返されます。

注意

メソッドによって ResetPassword 作成されたランダムなパスワードは、 プロパティで PasswordStrengthRegularExpression 正規表現を渡す保証はありません。 ただし、ランダム なパスワードは、 プロパティと プロパティによって確立された条件をMinRequiredPasswordLengthMinRequiredNonAlphanumericCharacters満たします。

メソッドに ResetPassword 正しくない回答が指定された場合、無効なパスワード応答の試行を追跡する内部カウンターは 1 ずつインクリメントされます。 これにより、 メソッドの呼び出し UnlockUser によってロック状態がクリアされるまで、ユーザーはログオンできなくなる可能性があります。 正しいパスワード応答が指定され、ユーザーが現在ロックアウトされていない場合、無効なパスワード試行を追跡する内部カウンターはゼロにリセットされます。 詳細については、MaxInvalidPasswordAttempts プロパティおよび PasswordAttemptWindow プロパティを参照してください。

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

メソッドをResetPassword直接呼び出すには、 プロパティからインスタンスへの参照を最初にActiveDirectoryMembershipProviderMembership.Provider取得します。

プロバイダーは、接続文字列で指定された検索ポイントから始まるサブツリー検索を使用します。 接続文字列の ActiveDirectoryMembershipProvider 詳細については、クラスのトピックを参照してください。

Active Directory サーバーでパスワードを設定するには、 属性を connectionProtection に設定する SignAndSeal必要があります。

ADAM サーバーを使用する場合は、 属性を connectionProtectionNone設定できますが、セキュリティで保護されていない接続でのパスワード変更を許可するように ADAM サーバーを明示的に構成した場合に限ります。

重要

Active Directory サーバーへの接続に使用する資格情報にドメイン管理者権限 (推奨されていません) または "パスワードのリセット" アクセス権がない限り、パスワードをリセットすることはできません。

パスワードをリセットするには、次のすべての条件が満たされている必要があります。

  • EnablePasswordReset プロパティは true に設定する必要があります。

  • Active Directory スキーマは、パスワードの質問と回答を格納するための属性と、パスワード応答の変更の 3 つの追跡フィールドを含むよう変更する必要があります。

  • 、、attributeMapPasswordAnswerattributeMapFailedPasswordAnswerCountattributeMapFailedPasswordAnswerTimeおよび attributeMapFailedPasswordAnswerLockedTime 属性はattributeMapPasswordQuestion、アプリケーション構成ファイルで設定する必要があります。

  • RequiresQuestionAndAnswer プロパティは true に設定する必要があります。

  • Active Directory データ ストア (プロセス アカウントまたは明示的な資格情報) に接続するためのセキュリティ コンテキストには、パスワードを変更するための十分な特権が必要です。 Active Directory サーバーへの接続に使用される資格情報には、ドメイン管理者権限 (推奨されません) または "パスワードのリセット" アクセス権があります。

注意

Active Directory サーバーに設定されているセキュリティ ポリシーを使用すると、メソッドで ResetPassword ポリシーを満たすパスワードを生成できなくなる可能性があります。 メソッドの既定の GeneratePassword 実装では、Windows Server 2003 SP1 を実行しているドメイン コントローラーの既定のパスワード ポリシーを満たすパスワードが生成されます。 Active Directory サーバーのセキュリティ ポリシーによりパスワードをリセットできない場合は、 ProviderException がスローされます。

適用対象

こちらもご覧ください