c#在服务器端验证密码
本文关键字:密码 验证 服务器端 | 更新日期: 2023-09-27 18:16:23
我现在正在尝试使用。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;
}
问题是,每当我输入不正确的值时,我不会看到第二个验证器显示错误消息。
还有一个小请求,在人们用他们的解决方案变得太奇特之前,请注意这是学校的作业,所以他们想要一个千篇一格的方法。我知道这很蠢,但规则就是规则。
调用服务器端检查密码有效性的方法是不好的。
使用 <asp:RegularExpressionValidator runat="server" ID="rgpassvalide" ErrorMessage="Please enter a *valid* password" ControlToValidate="PSWRD" ValidationExpression="^(['w'.'-]+)@(['w'-]+)(('.('w){2,3})+)$"></asp:RegularExpressionValidator>
代替"asp:CustomValidator"。
上面的代码可以帮助你使它工作