ActiveDirectoryMembershipProvider.ResetPassword(String, String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ユーザーのパスワードをリセットして、自動的に生成された新しいパスワードにします。
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
である。
トリム後の 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 サーバーを使用する場合は、 属性を connectionProtection
に None設定できますが、セキュリティで保護されていない接続でのパスワード変更を許可するように ADAM サーバーを明示的に構成した場合に限ります。
重要
Active Directory サーバーへの接続に使用する資格情報にドメイン管理者権限 (推奨されていません) または "パスワードのリセット" アクセス権がない限り、パスワードをリセットすることはできません。
パスワードをリセットするには、次のすべての条件が満たされている必要があります。
EnablePasswordReset プロパティは
true
に設定する必要があります。Active Directory スキーマは、パスワードの質問と回答を格納するための属性と、パスワード応答の変更の 3 つの追跡フィールドを含むよう変更する必要があります。
、、
attributeMapPasswordAnswer
attributeMapFailedPasswordAnswerCount
、attributeMapFailedPasswordAnswerTime
およびattributeMapFailedPasswordAnswerLockedTime
属性はattributeMapPasswordQuestion
、アプリケーション構成ファイルで設定する必要があります。RequiresQuestionAndAnswer プロパティは
true
に設定する必要があります。Active Directory データ ストア (プロセス アカウントまたは明示的な資格情報) に接続するためのセキュリティ コンテキストには、パスワードを変更するための十分な特権が必要です。 Active Directory サーバーへの接続に使用される資格情報には、ドメイン管理者権限 (推奨されません) または "パスワードのリセット" アクセス権があります。
注意
Active Directory サーバーに設定されているセキュリティ ポリシーを使用すると、メソッドで ResetPassword ポリシーを満たすパスワードを生成できなくなる可能性があります。 メソッドの既定の GeneratePassword 実装では、Windows Server 2003 SP1 を実行しているドメイン コントローラーの既定のパスワード ポリシーを満たすパスワードが生成されます。 Active Directory サーバーのセキュリティ ポリシーによりパスワードをリセットできない場合は、 ProviderException がスローされます。
適用対象
こちらもご覧ください
.NET