2012-01-10 15 views
0

は、ここで私は、いくつかの条件を持つ新しいユーザーのパスワードを制限したい。ここ
ASP。ネット会員は

<membership> 
     <providers> 
      <clear /> 
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="0" passwordStrengthRegularExpression="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!%,.;:])|(?=.*[a-z])(?=.*[0-9])(?=.*[!%,.;:])|(?=.*[A-Z])(?=.*[0-9])(?=.*[!%,.;:])$" passwordAttemptWindow="10" applicationName="/" /> 
     </providers> 
    </membership> 


私のWeb.configファイルであります: :


パスワードの強度:

  1. 次の4つのカテゴリの3から文字を含む:(ZスルーA) 英語大文字
    英語小文字(aからz)
    ベース10個の数字(0〜9)例えば
    非アルファベット文字(! 、$、#、%)
    - あなたは私がweb.configファイルそれ自体で使用passwordStrengthRegularExpression属性が見ることができるよう
  2. パスワード


ユーザーのアカウント名が含まれていません(メンバーシップが提供する)第1条件に一致するようにしてください。
2番目の条件を満たすための解決策が必要です。短いで


::私は(文字の複雑さが施行すなわち。:パスワード、ユーザーのアカウント名が含まれていない)状態を一致させるためにメンバーシップをカスタマイズする必要が

更新::
私はErangaが私を提案し何をしました私のアプリケーションで。今、私はまた、Membership createUserが失敗したときに(いくつかのカスタマイズされた条件で)適切なメッセージを表示したいと思います。

+0

私の質問が更新されました。見てみましょう。 – RollerCosta

答えて

3

デフォルトプロバイダからサブクラスを作成し、ValidatingPasswordイベントを処理できます。そこでは、2番目の基準を満たしていない場合は、検証をキャンセルすることができます。

public class MyMembershipProvider : SqlMembershipProvider 
{ 
    public MyMembershipProvider() 
    { 
     ValidatingPassword += ValidatePassword; 
    } 

    void ValidatePassword(object sender, ValidatePasswordEventArgs e) 
    { 
     if (e.Password.Contains(e.UserName)) 
     { 
      e.Cancel = true; 
      e.FailureInformation = new Exception("blah blah"); 
     } 
    } 
} 

Web.Configファイルには次のものが含まれている必要があります。 type属性のカスタムメンバーシップクラスのフルネームを指定してください。

<membership> 
     <providers> 
      <clear /> 
      <add name="MyMembershipProvider" type="MyNamespace.MyMembershipProvider" connectionStringName="ApplicationServices" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="0" passwordStrengthRegularExpression="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!%,.;:])|(?=.*[a-z])(?=.*[0-9])(?=.*[!%,.;:])|(?=.*[A-Z])(?=.*[0-9])(?=.*[!%,.;:])$" passwordAttemptWindow="10" applicationName="/" /> 
     </providers> 
    </membership> 
+0

あなたはメンバーシップをカスタマイズするのですか?web.configファイルからそのサブクラスを使用する方法はありますか? – RollerCosta

+0

@Kannasはい。その非常に簡単な:) – Eranga

+0

私はあなたが私のために働くかどうかを試してみましょう。 web.configに必要な変更を提案してください。 – RollerCosta

1

それはMVCではありませんが、あなたは、静的なイベントをオーバーライドするthis exampleで見ることができます。また、これは基本的にthe same question you asked beforeなので、もう少し詳しく説明すると、元の質問を更新したばかりでしょうか?

関連する問題