2

ASP.NETWebサイトでの認証にASP.NETメンバーシッププロパティを使用しています。パスワードをかなり安全にしたいと思います。文字、数字、特殊文字を含む7桁の長さにしたいと思います。

これがweb.configに追加されていることがわかりました

passwordStrengthRegularExpression=" @\"(?=.{6,})(?=(.*\d){1,})(?=(.*\W){1,})"

ただし、これをメンバーシッププロファイルに追加すると、次のエラーが発生します。

Name cannot begin with the '(' character, hexadecimal value 0x28. Line 26, position 445.

したがって、@記号の後にエスケープ文字が表示されていないように見え、その引用符を使用してタグを終了しようとしています。私が間違っていることについて何か考えはありますか?

最後に、小文字と大文字も必要になるようにこれを変更するにはどうすればよいですか?

4

4 に答える 4

3

これで試してください:

ValidationExpression="(?=^.{7,51}$)([A-Za-z]{1})([A-Za-z0-9!@#$%_\^\&\*\-\.\?]{5,49})$" 

ここではたくさんのサンプルを見つけることができます

于 2012-04-05T17:46:32.297 に答える
3

をエスケープしようとしていて"、これが web.config ファイルにある場合は、実行する必要があります。これは、"xml の適切な引用エンティティです。必要な正規表現については、これを試してください

^(?=[a-z]+)(?=.*?\d+)(?=.*?[`~!@#$%^&*\(\)\-_}{\]\[=+\\|]+).{7,}$

次の太字の項目と一致します

  • こんにちは
  • こんにちは
  • ヘルゼロス
  • 地獄0番
  • 彼!
  • he!l0Th
  • he!l0Th3534534
  • he!l0Thdggfsg

(?=.*?[A-Z]+)少なくとも 1 つの大文字も必要とする場合は追加して、最後の 3 つだけに一致させることができます。最後に、上記の正規表現から次のブロックを変更して、許可する特殊文字のみを含めることができます。

[`~!@#$%^&*\(\)\-_}{\]\[=+\\|]
于 2012-04-05T18:46:48.477 に答える
1

誰も理解できない式を扱う代わりに、3 つ (またはそれ以上) を使用します。このアイデアの疑似コードを次に示します。

abort('to short') if password.length < 8
abort('at least one letter') if password !~ /[a-z]/i
abort('at least two digits') if password !~ /[0-9].*[0-9]/
abort('at least one special character') if password !~ /[!@#$%^\*-=\+\?]/
于 2012-04-05T17:56:01.660 に答える