2.1.5.16 ResetPassword
このメソッドは、ユーザーのパスワードをリセットし、自動的に生成された新しいパスワードを戻します。
宣言
// C# public override string ResetPassword(string userName, string passwordAnswer);
パラメータ
-
userName
パスワードをリセットする対象のユーザー。
-
passwordAnswer
指定されたユーザーのパスワードに対する回答。
戻り値
指定されたユーザーの新しいパスワード。
例外
ArgumentNullException
- userName
パラメータがnull参照であるか、RequiresQuestionAndAnswer
プロパティがtrue
のときにpasswordAnswer
パラメータがnullです。
System.Web.Security.MembershipPasswordException
- passwordAnswer
パラメータが無効であるか、userName
パラメータで識別されるユーザーがロックされています。
ArgumentException
- 次のいずれかの条件が存在します。
-
userName
パラメータが空の文字列であるか、カンマが含まれているか、256文字を超えています。 -
passwordAnswer
パラメータが空の文字列であり、RequiresQuestionAndAnswer
プロパティがtrue
です。または、passwordAnswer
パラメータが128文字(エンコードされたバージョンを含む)を超えています。
System.Configuration.Provider.ProviderException
- 次のいずれかの条件が存在します。
-
userName
がメンバーシップ・データベースに見つかりませんでした。 -
パスワード・リセット操作が
ValidatingPassword
イベントのサブスクライバによって取り消され、FailureInformation
プロパティがnull参照でした。 -
メンバーシップ・データベースでのパスワードのリセット時にエラーが発生しました。
NotSupportedException
- EnablePasswordReset
プロパティがfalse
に設定されています。
例外
- 処理されない例外が発生しました。
備考
先頭および末尾の空白はuserName
パラメータ値とpasswordAnswer
パラメータ値から削除されます。
ResetPassword
メソッドは、PasswordFormat
プロパティがHashed
に設定されている場合に最もよく使用されます。ユーザーが、ハッシュ形式のパスワードを忘れた場合は、パスワードを取得できません。ただし、ユーザーがパスワードに対する正しい回答を提供した場合、プロバイダはパスワードを新しい自動生成パスワードにリセットできます。ResetPassword
メソッドでは、EnablePasswordReset
プロパティがtrue
に設定されている必要があります。パスワードに対する不正な回答がResetPassword
メソッドに指定されている場合は、無効なパスワードの試行を追跡する内部カウンタが1つ増やされます。これにより、ユーザーがロックされ、UnlockUser
メソッドの呼び出しによってロック・ステータスがクリアされるまでログオンできなくなることがあります。パスワードに対する正しい回答が指定され、ユーザーが現在ロックされていない場合は、パスワードに対する無効な回答の試行を追跡する内部カウンタがゼロにリセットされます。
ResetPassword
メソッドによって生成されたランダム・パスワードは、PasswordStrengthRegularExpression
プロパティの正規表現を渡すことが保証されていません。ただし、ランダム・パスワードは、MinRequiredPasswordLength
およびMinRequiredNonAlphanumericCharacters
プロパティで設定された基準を満たします。