1

デフォルトの System.Web.Security.SQLMembershipProvider を使用してユーザーとそのパスワードを処理する Web サイトがあります。今日、空白が特殊文字としてカウントされないことに気付きました。これは少し奇妙で、他の特殊文字も無効ではないかと考えさせられました。チェーンの早い段階でパスワードと一致する検証正規表現もあり、それらは空白を有効な特殊文字としてカウントするため、少し問題が発生します。

私の設定は次のようになります:

<add connectionStringName="MyConnectionString" 
  enablePasswordRetrieval="false" 
  enablePasswordReset="true" 
  requiresQuestionAndAnswer="false" 
  applicationName="Payson 2.0" 
  requiresUniqueEmail="true" 
  passwordFormat="Hashed" 
  maxInvalidPasswordAttempts="20" 
  minRequiredPasswordLength="8" 
  minRequiredNonalphanumericCharacters="0" 
  passwordStrengthRegularExpression="(?=.{6,})(?=(.*\d){1,})(?=(.*\W){1,})" 
  passwordAttemptWindow="10" 
  name="AspNetSqlMembershipProvider" 
  type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

.*\W空白と一致すると思うかもしれませんが、そうではありません。パスワードを から に変更しようとするabcdefg!1abcdefg 1失敗しますが、私の質問は、その理由と、他にも明らかでないケースがあるかどうかです。

4

0 に答える 0