ChangePassword制御および設定の正規表現のための新しいパスワード
-
19-09-2019 - |
質問
このように思わっているようなんですがこのグループに参加"ボタンがないのですがティへ簡単にアクセスできます。
私が使っているの ChangePassword
制御が可能ASP.NET 2.0用の両方を用いる ChangePasswordTemplate
や SuccessTemplate
を定義するカスタムスタイリング.のtextboxesいIdとしており
現在のパスワードのテキストボックスのID= CurrentPassword
新しいパスワードのテキストボックスのID= NewPassword
確認新しいパスワードのテキストボックスのID= ConfirmPassword
のための DRY
理由を使いたいのは、正規表現で定義されているカスタム会員制プロバイダを検証するために新しいパスワードのクライアント側で行われます。残念ながら、設定を ChangedPassword
コントロールの財産としており
ChangePassword.NewPasswordRegularExpression =
Membership.PasswordStrengthRegularExpression;
ChangePassword.NewPasswordRegularExpressionErrorMessage =
"Regex Error Message";
に Page_Init
セットの表現が予想される値がないとクライアント側の検証をおこなう、新しいパスワードのページの投稿の標準会員 ChangePassword
失敗をテキストを返します。
使うことがで RegularExpressionValidator
の ChangePasswordTemplate
の設定 ValidationExpression
財 Membership.PasswordStrengthRegularExpression
ずにいきいことが必要でrecursingのコントロールテンプレートの RegularExpressionValidator
設定なので、私は信じることが必要になり、より優雅に。私はその他のバリデータコントロールテンプレートに必要な分野との比較validator)場合、この相反の ChangePassword
検証す。
私の質問は、 ChangePassword
コントロールの NewPasswordRegularExpression
物件の場合、テンプレートを使用するには必要でしょうかを下 RegularExpressionValidator
制御ルート?
編集:
提供幸ることにおいて決定的な答えをもとに、 ChangePassword
コントロールの NewPasswordRegularExpression
な検証クライアント側で行われます。
解決
ご利用の場合"に変換するテンプレート"は、RegularExpressionValidatorコントロールが出てきません自動的に作成されていない描画される最終ページです。ここで確認することができますのページのソースの前後で変換するテンプレートを作成します。
追加RegularExpressionValidatorとまったく同じように、ASP.NET 使用せずに、テンプレートを指定することができまとNewPasswordテキストボックスのRequiredFieldValidatorようになります:
<asp:TextBox ID="NewPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:RegularExpressionValidator ID="NewPasswordRegExp" runat="server"
ErrorMessage="RegularExpressionValidator" Display="Dynamic"
ControlToValidate="NewPassword" ValidationGroup="ChangePassword1"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="NewPasswordRequired" runat="server"
ControlToValidate="NewPassword" ErrorMessage="New Password is required."
ToolTip="New Password is required." ValidationGroup="ChangePassword1">*</asp:RequiredFieldValidator>
ご使用になれませんChangePasswordのNewPasswordRegularExpressionプロパティを変更した正規表現である。だいこう:
protected void Page_Init(object sender, EventArgs e)
{
RegularExpressionValidator validator
= ((RegularExpressionValidator)(ChangePassword1.Controls[0].FindControl("NewPasswordRegExp")));
validator.ValidationExpression = Membership.PasswordStrengthRegularExpression;
validator.ErrorMessage = "Regex Error Message";
}
この助けになっていますよ。
他のヒント
とはそんなもんでしょうか長すぎます戻りやすくなってしまいます。
PasswordStrengthRegularExpressionは検証済みサーバ側です。とNewPasswordRegularExpression検証済みでクライアント側で行われます。これからも、国際化には差額をいただきます。によるバグを修正JSScript/VSScript Regx検証、正規表現で検証済みサーバなされbrowswer.
また、パスワードで検証されるとNewPasswordRegularExpressionもPasswordStrengthRegularExpression.でNewPasswordRegularExpressionべきではないのルールで定義されPasswordStrengthRegularExpression.
例えば
passwordStrengthRegularExpression="^*(?=.{7,})(?=(.*\W){1,})(?=(.*\d){1,})"
NewPasswordRegularExpression="^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\W).*$"
に働きます。
これはお手伝いさせていただきます。
更新:regex lookaheadくなる場合もあります
http://blog.stevenlevithan.com/archives/regex-lookahead-bug