C#在SERVER SIDE上验证密码

时间:2016-11-05 15:58:04

标签: c# asp.net .net web

我现在正试图使用​​.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;


}

问题是,每当我输入错误的值时,我都没有看到第二个验证器显示错误消息。

同样有点请求,在人们对他们的解决方案过于异国情调之前,请注意这是为了学校作业,所以他们想要一个千篇一律的方法。我知道,这是愚蠢的,但规则是规则。

1 个答案:

答案 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;。

上面的代码可以帮助您实现目标。