12asp.net=============用户登录系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12asp.net=============用户登录系统相关的知识,希望对你有一定的参考价值。
1 public string ErrorMsg { get; set; } 2 protected void Page_Load(object sender, EventArgs e) 3 { 4 if (IsPostBack) 5 { 6 //判断用户名与密码之前先判断验证码是否正确。 7 if (CheckValidateCode()) 8 { 9 CheckUserInfo();//对用户名密码进行校验 10 } 11 else 12 { 13 ErrorMsg = "验证码错误!!"; 14 } 15 } 16 else 17 { 18 //判断Cookie中是否有值。如果有值,并且值是正确的,那么跳转,不需要用户在输入用户名和密码了。如果Cookie没有值,或者值是错误的,那么继续呈现登录表单,让用户输入用户名密码进行登录。 19 CheckCookieInfo(); 20 21 } 22 } 23 24 /// <summary> 25 /// 对Cookie的信息进行校验 26 /// </summary> 27 private void CheckCookieInfo() 28 { 29 if (Request.Cookies["cp1"] != null && Request.Cookies["cp2"] != null) 30 { 31 string userName = Request.Cookies["cp1"].Value; 32 string userPwd = Request.Cookies["cp2"].Value; 33 BLL.UserInfoService UserInfoService = new BLL.UserInfoService(); 34 UserInfo userInfo=UserInfoService.GetUserInfoModel(userName); 35 if (userInfo != null)//根据Cookie中存储的用户名找用户,如果不为空,表示Cookie中存储的用户名是否正确的。 36 { 37 //判断该用户数据库中存储的密码是否与Cookie中存储的密码是否一致。注意:在注册时,一定要将用户输入的密码加密以后在存储到数据库中。假如,用户注册时的密码已经两次MD5运算了,那么这里直接比较就OK了。 38 if (userPwd == Common.WebCommon.GetMd5String(Common.WebCommon.GetMd5String(userInfo.UserPass))) 39 { 40 Session["userInfo"] = userInfo; 41 Response.Redirect("UserList.aspx"); 42 } 43 44 } 45 //如果Cookie中是有值的,但是Cookie存储的用户名或密码不正确,表示用户名和密码被篡改了,那么只能继续出现登录页面。那么该 cOOKIE也没有必要存在了。 46 Response.Cookies["cp1"].Expires = DateTime.Now.AddDays(-1); 47 Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1); 48 } 49 } 50 51 /// <summary> 52 /// 校验用户的用户名和密码是否正确 53 /// </summary> 54 private void CheckUserInfo() 55 { 56 string userName = Request.Form["txtClientID"]; 57 string userPwd = Request.Form["txtPassword"]; 58 BLL.UserInfoService UserInfoService = new BLL.UserInfoService(); 59 string msg = string.Empty; 60 UserInfo userInfo=null; 61 if (UserInfoService.CheckLoginUserInfo(userName, userPwd, out msg, out userInfo)) 62 { 63 //判断用户是否选择了"自动登录" 64 if (!string.IsNullOrEmpty(Request.Form["autoLogin"]))//如果表单中有多个CheckBox,只会将选中的value提交到服务端 65 { 66 HttpCookie cookie1 = new HttpCookie("cp1",userName); 67 HttpCookie cookie2 = new HttpCookie("cp2", Common.WebCommon.GetMd5String(Common.WebCommon.GetMd5String(userPwd))); 68 cookie1.Expires = DateTime.Now.AddDays(3); 69 cookie2.Expires = DateTime.Now.AddDays(3); 70 Response.Cookies.Add(cookie1); 71 Response.Cookies.Add(cookie2); 72 } 73 74 //如果上面的条件成立,表示用户输入的是正确的用户名和密码. 75 Session["userInfo"] = userInfo; 76 77 Response.Redirect("UserList.aspx"); 78 } 79 else 80 { 81 ErrorMsg = msg; 82 } 83 } 84 85 #region 验证码进行校验 86 private bool CheckValidateCode() 87 { 88 //注意:使用Session时先判断值是否为空. 89 bool isSucess = false; 90 if (Session["code"] != null) 91 { 92 string txtCode = Request.Form["txtCode"]; 93 string sysCode = Session["code"].ToString(); 94 if (sysCode.Equals(txtCode, StringComparison.InvariantCultureIgnoreCase)) 95 { 96 Session["code"] = null; 97 isSucess = true; 98 } 99 } 100 return isSucess; 101 } 102 103 #endregion 104 }
1 context.Response.ContentType = "text/plain"; 2 Common.ValidateCode validateCode = new Common.ValidateCode(); 3 string code=validateCode.CreateValidateCode(4); 4 context.Session["code"] = code;//注意:在一般处理程序中使用Session必须要实现System.Web.SessionState.IRequiresSessionState接口. 5 validateCode.CreateValidateGraphic(code, context);
以上是关于12asp.net=============用户登录系统的主要内容,如果未能解决你的问题,请参考以下文章