【问题标题】:regular expression validation in asp.netasp.net 中的正则表达式验证
【发布时间】:2013-04-25 10:37:58
【问题描述】:

我在 asp.net 中使用正则表达式验证器 c# 作为登录页面..我有不同的学生、讲师和管理员登录页面..登录 ID 的格式分别为 1RNxxCSxxx、1RNLECSxxx、1RNADCSxxx(x 位)我的问题是它验证文本框并显示错误消息..但它仍然继续登录..我的代码是..

    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"       ControlToValidate="TextBox1" ErrorMessage="Enter in 1RNxxCSxxx format" ValidationExpression="[1][R][N][0-9][0-9][C][S][0-9][0-9][0-9]"></asp:RegularExpressionValidator>

ie..如果我在学生登录页面中输入讲师 ID,尽管收到错误消息,我仍然可以登录..任何帮助将不胜感激。谢谢你

【问题讨论】:

  • 能发一下验证码吗

标签: asp.net


【解决方案1】:

从您的文本框名称看来,您正在使用自定义登录逻辑。我建议您考虑使用会员提供程序,它可以更强大地保护您的整个应用程序。查看How to configure member ship with a database other than aspnetdb

对于您的直接问题虽然在登录用户的方法中检查页面是否有效。

if( !Page.IsValid )
{
     return;
}

更多信息可以在这里找到:this link

你的正则表达式也不正确。使用以下方法成功匹配。

^1RN([0-9]{2}|LE|AD)CS[0-9]{3}$

上面的表达式说字符串应该以 1RN 开头(^ 表示开始)有两个数字或 LE 或 AD 后跟字母 CS 和三个数字($ 表示结束)。

【讨论】:

  • 感谢您的回复..我使用了会员资格的东西..只有会员才能登录..但会员本身存在问题..我更改了我的正则表达式..它仍然无法正常工作。 . 在后面的代码中验证我给出的 id 和密码 if (RegularExpressionValidator1.IsValid == true) { conditions check.. } 并且这个值总是被存储为 true ..所以它正在登录
  • if (pswd == valid){ String q2 = "select ANO from USERS where ID='" + usn +"';"; SqlCommand myc2 = new SqlCommand(q2, con); SqlDataReader myd2; myd2 = myc2.ExecuteReader(); myd2.Read(); a = myd2[0].ToString(); myd2.Close();会话[“usn”] = usn;会话[“ANO”] = a; Response.Redirect("SHome.aspx"); } else{ string script = ""; ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", script); } }
  • 老兄,你应该删除这条评论,你在发布的代码中有你的密码。