【问题标题】:C# Validating a password on SERVER SIDEC#在服务器端验证密码
【发布时间】:2016-11-05 15:58:04
【问题描述】:

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


}

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

还有一点恳求,在人们对他们的解决方案过于陌生之前,请在学校作业中注意这一点,所以他们想要一种千篇一律的方法。我知道,这很愚蠢,但规则就是规则。

【问题讨论】:

  • 确实没有必要在方法名称中包含短语“ServierSide”。代码在服务器端定义。
  • 你在Regex.IsMatch调试过,看看函数是否被调用,如果是,正则表达式是否匹配。
  • 我现在明白了。我之前尝试过调试它,但我的页面中有其他字段带有验证器。我将它们留空,因此它们的验证器首先会出错,而我的服务器端代码将永远不会执行。我现在觉得很傻。
  • 所有验证器都有一个Enabled(布尔值)设置。您可以将所有其他设置为“False”以阻止它们中断调试。请记住之后删除/设置为“True”。

标签: c# asp.net .net web


【解决方案1】:

认为调用服务器端方法来检查密码验证是不好的。

使用

   <asp:RegularExpressionValidator runat="server" ID="rgpassvalide"  ErrorMessage="Please enter a *valid* password"  ControlToValidate="PSWRD" ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"></asp:RegularExpressionValidator>

插入“asp:CustomValidator”。

以上代码可帮助您使其正常工作。

【讨论】:

    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    相关资源
    最近更新 更多