突然感觉到自己好长时间都没有写博客了,看了看自己近一个月的每日总结,只是零星地记下了一些当时做做项目的感受,没有写在博客上,现在项目已经接近尾声了,是时间好好总结总结了。
还清楚地刻接到任务的那一刻自己的心情,很激动也很有压力!说句实话,更多的是压力,不过还好,不能说出色地完成任务,也可以说是基本完成任务了吧!在这一个多月的时间里,从最初的需求、到页面、到数据库、到设计、到代码实现到调试等等,有很多要总结的,我就从细节到整体来总结吧!今天我想说的是用户输入验证方面。
我们都知道在asp.net的控件中有验证用户输入的,可是功能只是局限在验证用户是否输入,不能给出用户准确的提示,比如对于登录来说,可能是用户没有输入信息、还可能是密码输入错误、还可能是该用户不存在,同时,我们最好还要限制用户只能输入有效字符(比如说只能是英文字母或者汉字,这也从另一个方面对系统的安全性是一个保障!)
我的登录界面如图:
下面是我的验证的代码:
protected void btnLogin_Click(object sender, EventArgs e) { //验证输入的用户名 if (txtName.Text == "") { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请输入用户名!');</script>"); //输入用户名文本框获得焦点 txtName.Focus(); return; } else { string pattern; pattern = "^[0-9a-zA-Z]+$"; Match match = Regex.Match(txtName.Text, pattern); if (!match.Success) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('用户名由英文字母或者数字构成!');</script>"); //清空用户名文本框并获得焦点 txtName.Text = ""; txtName.Focus(); return; } } //验证输入的密码 if (txtPassWord.Text == "") { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请输入密码!');</script>"); //输入用户名文本框获得焦点 txtPassWord.Focus(); return; } else { string pattern; pattern = "^[0-9a-zA-Z]+$"; Match match = Regex.Match(txtPassWord.Text, pattern); if (!match.Success) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('密码由英文字母或者数字构成!');</script>"); //清空用户名文本框并获得焦点 txtPassWord.Text = ""; txtPassWord.Focus(); return; } } //验证码是否输入 if (txtCode.Text == "") { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请输入验证码!');</script>"); } else { if (Session["Code"]==null) { Response.Redirect("login.aspx"); } string rightCode = Session["Code"].ToString(); //验证码输入正确 if (txtCode.Text.Trim().ToUpper() == rightCode) { //验证用户是否存在 enAdminInfo adminInfo = new enAdminInfo(); adminInfo.Id = txtName.Text.Trim(); adminInfo.Password = txtPassWord.Text.Trim(); try { if (new m_loginBLL().VerifyAmdin(adminInfo)) { //保存登录的用户名 Session["adminId"] = adminInfo.Id; //判断管理员的权限,转向不同的页面 switch (new m_loginBLL().GetAdminType(adminInfo.Id)) { case "超级管理员": Response.Redirect("foodCategoryManage.aspx"); break; case "一般管理员": Response.Redirect("/commonAdmin/commonAdmin.aspx"); break; } } else { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('密码输入错误!');</script>"); txtCode.Text = ""; //清空输入验证码的文本框 } } catch (Exception ex) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('" + ex.Message.ToString() + "');</script>"); txtCode.Text = ""; //清空输入验证码的文本框 } } else { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('验证码输入错误!');</script>"); txtPassWord.Focus(); //密码框获得焦点 txtCode.Text = ""; //清空输入验证码的文本框 } } }
在验证用户用了一个BLL层的验证类,这是我的验证方法,不知道大家是怎么验证的呢?希望您留下您的看法和意见,一起讨论、分享!