質問

このように思わっているようなんですがこのグループに参加"ボタンがないのですがティへ簡単にアクセスできます。

私が使っているの ChangePassword 制御が可能ASP.NET 2.0用の両方を用いる ChangePasswordTemplateSuccessTemplate を定義するカスタムスタイリング.のtextboxesいIdとしており

現在のパスワードのテキストボックスのID= CurrentPassword
新しいパスワードのテキストボックスのID= NewPassword
確認新しいパスワードのテキストボックスのID= ConfirmPassword

のための DRY 理由を使いたいのは、正規表現で定義されているカスタム会員制プロバイダを検証するために新しいパスワードのクライアント側で行われます。残念ながら、設定を ChangedPassword コントロールの財産としており

ChangePassword.NewPasswordRegularExpression = 
    Membership.PasswordStrengthRegularExpression;
ChangePassword.NewPasswordRegularExpressionErrorMessage = 
    "Regex Error Message";

Page_Init セットの表現が予想される値がないとクライアント側の検証をおこなう、新しいパスワードのページの投稿の標準会員 ChangePassword 失敗をテキストを返します。

使うことがで RegularExpressionValidatorChangePasswordTemplate の設定 ValidationExpressionMembership.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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top