デフォルトの Sql MembershipProvider を使用する C# asp.net アプリがあります。私の web.config には、このプロバイダーの使用方法を制御するいくつかの設定があります。
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresUniqueEmail="true"
passwordFormat="Hashed"
minRequiredPasswordLength="5"
私が直面している問題は、人々がパスワードをリセットすると、ResetPassword() メソッドが、必要以上に長いパスワードを返し、紛らわしい文字 (l、1、i、I、0、O) を含むように見えることです。 )。さらに、平文メッセージと HTML メッセージを含むメールをユーザーに送信しています (私は AlternateViews で MailMessage を使用しています)。パスワードに安全でない HTML 文字が含まれている場合、電子メール クライアントが HTML テキストをレンダリングするときに、パスワードが異なる可能性があります (たとえば、%、&、および < は HTML 安全とは言えません)。
web.config に属する「add」要素を調べましたが、ResetPassword() メソッドに特定の文字のみを含め、パスワードの長さを制限するための追加の構成プロパティはありません。
パスワードの長さを制限し、選択する文字セットを制限するように ResetPassword() メソッドを構成できますか?
現在、回避策があります: ResetPassword() を呼び出して、提供された回答が正しいことを確認し、インターネットからダウンロードしたRandomPassword ジェネレーターを使用して、好きなパスワードを生成します (あいまいな文字、HTML セーフ、および長さは 8 文字) で、ChangePassword() を呼び出して、ユーザーのパスワードを既にリセットした後に変更します。
私の回避策は厄介なようで、ResetPassword() を構成して自分のやりたいことを実行する方がよいと思いました。
ありがとう~!
コロラドテック