/// <summary> /// 通过检查cookie信息 来自动登录 /// </summary> protected void CheckCookieInfo() { if (Request.Cookies["cp1"] != null && Request.Cookies["cp2"] != null) { string userName = Request.Cookies["cp1"].Value; string userPwd = Request.Cookies["cp2"].Value; BLL.UserInfoService userInfoService = new BLL.UserInfoService(); UserInfo userInfo = userInfoService.GetUserInfo(userName); if (userInfo != null) { //注意:在添加用户或注册用户时一定要将用户输入的密码加密以后在存储到数据库中。 string localPwd = WebCommon.GetMd5(WebCommon.GetMd5(userInfo.UserPass)); if (localPwd == userPwd) { Session["userInfo"] = userInfo; Response.Redirect("UserInfoList.aspx"); } } else { //数据库 数据别人盗取了。 // cookie当中数据如果错误了 cookie中的数据 清空 Response.Cookies["cp1"].Expires = DateTime.Now.AddDays(-1); Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1); } } else { //这里就直接出现登陆页面 不用其他的处理 } }
protected void CheckUserInfo() { //session存储在内存中 //不要将过大的数据复制给session //session要判断是否为空 string userName = Request.Form["txtName"]; UserName = userName; string userPwd = Request.Form["txtPwd"]; BLL.UserInfoService userInfoService = new BLL.UserInfoService(); string msg = string.Empty; UserInfo userInfo = null; bool isLogin = userInfoService.ValidateUserInfo(userName, userPwd, out msg, out userInfo); //判断用户名密码是否正确 if (isLogin) { //页面上如果有多个复选框时,只能将选中复选框的的值提交到服务端。 if (!string.IsNullOrEmpty(Request.Form["autoLogin"])) { string pwd = ""; //可以一种算法加密好几次 别人破解不了的那种 //第一次登陆的时候 加密之后保存到 cookie当中 // 第一次加载页面的 根据cookie的值来判断一下 pwd = WebCommon.GetMd5(WebCommon.GetMd5(userPwd)); HttpCookie cookie1 = new HttpCookie("cp1", userName); HttpCookie cookie2 = new HttpCookie("cp2", pwd); cookie1.Expires = DateTime.Now.AddDays(7); cookie2.Expires = DateTime.Now.AddDays(7); Response.Cookies.Add(cookie1); Response.Cookies.Add(cookie2); } //Session过期了之后 就访问不打的 //是滑动过期时间。再次访问的时候 时间 会往后延长 //赋值几个页面 不要把所有的页面全部都复制过去 Session["userInfo"] = userInfo; Response.Redirect("UserInfoList.aspx"); } else { Msg = msg; } }