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プロパティで設定された基準を満たします。