我现在正试图使用.NET验证服务器端的密码
这是我的客户端代码:
<asp:TextBox ID="PSWRD" runat="server" Width="120px"></asp:TextBox>
<span style="background-color:yellow; color:red; font-weight:bold;" title="some rules">Password Rules</span>
<asp:RequiredFieldValidator ID="VPSWRD" runat="server"
ErrorMessage="A password is required"
ControlToValidate="PSWRD">
</asp:RequiredFieldValidator>
<asp:CustomValidator ID="IPSWRDVal" runat="server"
OnServerValidate="ValidatePasswordServerSide"
ControlToValidate="PSWRD"
ErrorMessage="Please enter a *valid* password"
ValidateEmptyText="False"
></asp:CustomValidator>
我的第一个验证工作正常。它会在适当的时候显示它的消息。
第二个给了我麻烦。
这是我背后的代码
protected void ValidatePasswordServerSide(object source, ServerValidateEventArgs args)
{
if (Regex.IsMatch(args.Value, @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"))
args.IsValid = true;
else
args.IsValid = false;
}
问题是,每当我输入错误的值时,我都没有看到第二个验证器显示错误消息。
同样有点请求,在人们对他们的解决方案过于异国情调之前,请注意这是为了学校作业,所以他们想要一个千篇一律的方法。我知道,这是愚蠢的,但规则是规则。
答案 0 :(得分:0)
认为用于检查密码验证的呼叫服务器端方法是不好的。
使用
<asp:RegularExpressionValidator runat="server" ID="rgpassvalide" ErrorMessage="Please enter a *valid* password" ControlToValidate="PSWRD" ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"></asp:RegularExpressionValidator>
asp&#34; asp:CustomValidator&#34;。
上面的代码可以帮助您实现目标。