最近、asp.net 2.0 の新しいログイン コントロールを研究していて、システムのデフォルトのパスワード セキュリティ要件が比較的高いことがわかりました。つまり、「パスワードの最小長は 7 で、これには次の英数字以外の文字が含まれている必要があります。 "、普通の Wang Zhan の場合、必要なものはありません (Windows 2003 サーバーでも、デフォルトではこのような複雑なパスワードは必要ありません)。一部の参考資料に記載されている修正方法はmachine.config内で修正する方法です。ただし、ホストに対する管理者権限がない限り、ホストを変更することはできません。したがって、web.config ファイルで変更することをお勧めします。
この方法は、web.config の <system.web> ノードにサブタグを追加することです。
<会員>
<プロバイダー>
<remove name="AspNetSqlMembershipProvider"/>
<add name="AspNetSqlMembershipProvider"
type=" System.Web.Security.SqlMembershipProvider、System.Web、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b03f5f7f11d50a3a"
接続文字列名 = "ローカル SQL サーバー"
EnablePasswordRetrieval="false"
EnablePasswordReset="true"
質問と回答 = "true" が必要です
アプリケーション名="/"
RequiredUniqueEmail="false"
パスワード形式="ハッシュ化"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequired非英数字文字 = "0"
パスワードアテンプトウィンドウ = "10"
パスワード強度正規表現="" />
</プロバイダ>
</メンバーシップ>
主要な属性について説明しましょう:
connectionStringName データベース接続。これはweb.configで設定する必要があります
EnablePasswordRetrieval 現在のメンバーシップ プロバイダーがユーザーにパスワードの取得を許可するように構成されているかどうかを示す値を取得します。
EnablePasswordReset 現在のメンバーシップ プロバイダーがユーザーにパスワードのリセットを許可するように構成されているかどうかを示す値を取得します。
RequiredQuestionAndAnswer デフォルトのメンバーシップ プロバイダーが、パスワードのリセットと取得のためにユーザーにパスワードの質問に答えることを要求するかどうかを示す値を取得します。
applicationName は、アプリケーションの名前を取得または設定します。
requireUniqueEmail ユーザーの作成時にユーザーが一意の電子メール アドレス値を指定する必要があるかどうかを示します。
passwordFormat は、パスワードがメンバーシップ データ ストアに保存される形式を示します。詳細な手順は以下の通り
maxInvalidPasswordAttempts ユーザーがメンバーシップからロックアウトされるまでに許可される、無効なパスワードまたは無効なパスワードへの回答試行の回数を取得します。
minRequiredPasswordLength パスワードに必要な最小の長さを取得します。
minRequiredNonalphanumericCharacters 有効なパスワードに含める必要がある特殊文字の最小数を取得します。
passwordAttemptWindow メンバーシップ ユーザーがロックアウトされるまでに許可される無効なパスワードまたは無効なパスワードへの回答試行の最大回数を分単位で取得します。
PasswordFormat の詳細説明プロパティは、パスワードが格納される形式を示します。パスワードは、クリア、暗号化、およびハッシュされたパスワード形式で保存できます。クリア パスワードはクリア テキストで保存されるため、パスワードの保存と取得のパフォーマンスは向上しますが、安全性は低く、データ ソースのセキュリティが侵害された場合に簡単に読み取られる可能性があります。暗号化されたパスワードは保存時に暗号化され、パスワードを比較または取得するときに復号化できます。このようなパスワードは保管時と取得時に追加の処理が必要ですが、安全性が高く、データ ソースのセキュリティが侵害された場合には簡単に取得できません。ハッシュされたパスワードは、一方向ハッシュ アルゴリズムと、データベースに保存するときにランダムに生成されたソルト値を使用してハッシュされます。パスワードが検証されると、パスワードは検証のためにデータベース内のソルト値でハッシュ化されます。ハッシュされたパスワードを取得できません。