/// <summary> /// 登陆验证 /// </summary> /// <returns></returns> public ActionResult CheckLogin() { //1、判断验证码是否正确 var validateCode = Session["ValidateCode"]?.ToString(); if (string.IsNullOrEmpty(validateCode)) { return(Content("no:验证码错误!!")); } Session["ValidateCode"] = null; var txtCode = Request["vCode"]; if (!validateCode.Equals(txtCode, StringComparison.InvariantCultureIgnoreCase)) { return(Content("no:验证码错误!!")); } //2、判断用户输入的用户名和密码 var userName = Request["LoginCode"]; var userPwd = Request["LoginPwd"]; var userInfo = UserInfoBll.LoadEntities(u => u.UserName == userName && u.UserPwd == userPwd) .FirstOrDefault(); if (userInfo != null) { //共享session数据,只能应用于部署单台服务器。 //Session["UserInfo"] = userInfo; //使用Memcache代替Session解决数据在不同web服务器之间共享的问题 var sessionId = Guid.NewGuid().ToString(); //memcached储存对象需要序列化 //Common.MemcachedHelper.Set(sessionId, userInfo, DateTime.Now.AddMinutes(20)); Common.MemcachedHelper.Set( sessionId, Common.SerializerHelper.SerializerToString(userInfo), DateTime.Now.AddMinutes(20) ); //将Memcache的key以cookie的形式返回到浏览器端的内存中,当用户再次请求其他的页面,请求报文中会以Cookie将该值再次发送服务端。 Response.Cookies["sessionId"].Value = sessionId; //记住我 if (!string.IsNullOrEmpty(Request["checkMe"])) { HttpCookie cookie1 = new HttpCookie("cp1", userInfo.UserName); HttpCookie cookie2 = new HttpCookie("cp2", WebCommon.GetMd5String(WebCommon.GetMd5String(userInfo.UserPwd))); cookie1.Expires = DateTime.Now.AddDays(3); cookie2.Expires = DateTime.Now.AddDays(3); Response.Cookies.Add(cookie1); Response.Cookies.Add(cookie2); } return(Content("ok:登陆成功")); } else { return(Content("no:用户名或者密码错误")); } }
/// <summary> /// 判断Cookie信息 /// </summary> private void CheckCookieInfo() { if (Request.Cookies["cp1"] != null && Request.Cookies["cp2"] != null) { var userName = Request.Cookies["cp1"].Value; var userPwd = Request.Cookies["cp2"].Value; //判断cookie中储存的用户密码和用户名是否正确 var userInfo = UserInfoBll.LoadEntities(u => u.UserName == userName) .FirstOrDefault(); if (userInfo != null) { //注意:用户密码一定要加密以后保存到数据库 if (WebCommon.GetMd5String(WebCommon.GetMd5String(userInfo.UserPwd)) == userPwd) { var sessionId = Guid.NewGuid().ToString(); MemcachedHelper.Set(sessionId, SerializerHelper.SerializerToString(userInfo), DateTime.Now.AddMinutes(20)); Response.Cookies["sessionId"].Value = sessionId; Response.Redirect("/Home/Index"); } } } //删除Cookies Response.Cookies["cp1"].Expires = DateTime.Now.AddDays(-1); Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1); }
public bool ValidateUserLogin() { /* * 验证用户是否已经登陆 * 验证session中是否有值 有的话就已经登陆了 * * 验证cookie是否有值 ,,就是自动登陆是否生效 * 是的 话也就直接登录了 * * * 密码 md5加密一次 大写的保存 是加密了一之后再保存 而且保存还都是大写的 * */ var current = HttpContext.Current; bool isSuccess = true; if (current.Session["userInfo"] != null) { isSuccess = true; } else { if (current.Request.Cookies["cp1"] != null && current.Request.Cookies["cp2"] != null) { string userName = current.Request.Cookies["cp1"].Value; string userPwd = current.Request.Cookies["cp2"].Value; User userInfo = GetModel(userName); if (userInfo != null) { var p = WebCommon.GetMd5String(userInfo.LoginPwd.ToUpper()); if (userPwd == p) { current.Session["userInfo"] = userInfo; isSuccess = true; } else { isSuccess = false; } } else { //如果没有次用户 但是cookie值还有 那就要清空了 current.Response.Cookies["cp1"].Expires = DateTime.Now.AddDays(-1); current.Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1); isSuccess = false; } } else { isSuccess = false; } } //没有cookie 查不到用户的时候 都是没有登陆的两个合并到一起返回了就是 return(isSuccess); }
/// <summary> /// 对Cookie中储存的信息进行校验 /// </summary> private void CheckCookieInfo() { if (Request.Cookies["cp1"] != null && Request.Cookies["cp2"] != null) { var userName = Request.Cookies["cp1"].Value; var userPwd = Request.Cookies["cp2"].Value; //判断Cookie中储存的用户名是否正确 if (userName == "yao") { if (userPwd == WebCommon.GetMd5String(WebCommon.GetMd5String("123"))) { Session["name"] = userPwd;//给Session赋值(自己加的) Response.Redirect("04_Test.aspx"); } } Response.Cookies["cp1"].Expires = DateTime.Now.AddDays(-1); Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1); } }
/// <summary> /// 判断用户名密码是否正确,用户登录 /// </summary> private void CheckUserInfo() { var userName = Request.Form["txtName"]; var userPwd = Request.Form["txtPwd"]; if (userName == "yao" && userPwd == "123") { Session["name"] = userName;//给Session赋值(自己加的) if (!string.IsNullOrEmpty(Request.Form["checkMe"])) { var cookie1 = new HttpCookie("cp1", userName); var cookie2 = new HttpCookie("cp2", WebCommon.GetMd5String(WebCommon.GetMd5String(userPwd))); cookie1.Expires = DateTime.Now.AddDays(3); cookie1.Expires = DateTime.Now.AddDays(3); Response.Cookies.Add(cookie1); Response.Cookies.Add(cookie2); } Response.Redirect("04_Test.aspx"); } }
public void ProcessRequest(HttpContext context) { string username = context.Request["username"]; string userpass = context.Request["password"]; string email = context.Request["email"]; string tel = context.Request["tel"]; UserManager userManager = new UserManager(); //查找一下用户名 var isRegister = userManager.Exists(username); if (!isRegister) { User user = new User(); user.LoginId = username; user.Name = username; user.UserState.Id = 1; user.Address = "某一个未知的地方"; user.LoginPwd = WebCommon.GetMd5String(userpass).ToUpper(); user.Mail = tel; user.Phone = tel; if (userManager.Add(user) > 0) { //json的格式非常严格 必须加上爽引号才会解析。。我日了。。 //繁琐的验证判断 。。请求返回的格式。乱起八糟的东西。 context.Response.Write("{\"code\":1,\"msg\":\"注册成功!\"}"); } else { context.Response.Write("{\"code\":-1,\"msg\":\"注册失败!\"}"); } } else { context.Response.Write("{\"code\":1,\"msg\":\"用户已经注册!\"}"); } }
//验证用户名密码(说的一个功能都是一个小的模块里面的功能点有很多) //先理解 这个功能 要包含哪些功能 模块 功能点。。数据表的结构 。业务的流程是什么样子的。。然乎就是一点一点的做了 // 别人是怎么做的。。学习 模仿。。自己实际动手做一遍。。不会的再去看看。。参数一下 但是 不是复制粘贴过来就完事了。 /// <summary> /// 登录的时候校验用户名或者密码 /// </summary> /// <param name="userName">用户名</param> /// <param name="password">密码</param> /// <param name="msg">消息提示</param> /// <returns></returns> public bool CheckUserInfo(string userName, string password, out string msg, out User user) { if (dal.Exists(userName)) { user = dal.GetModel(userName); password = WebCommon.GetMd5String(password); if (user.LoginPwd.Equals(password, StringComparison.CurrentCultureIgnoreCase)) { msg = "用户登录成功!"; return(true); } else { msg = "用户名或者密码错误!"; return(false); } } else { msg = "用户不存在"; user = null; return(false); } }
//验证用户名密码 设置自动登陆 public bool CheckUserInfo() { //测试密码都是123456 string userName = Request["txtUsername"]; string password = Request["txtPassword"]; string vardateCode = Request["txtYzm"]; //验证码 if (!WebCommon.CheckValidateCode(vardateCode)) { Msg = "验证码错误!"; return(false); } string msg = ""; BookShop.Model.User user = null; UserManager userManager = new UserManager(); bool isLogin = userManager.CheckUserInfo(userName, password, out msg, out user); if (isLogin) { //将每一个对象存储dao session中 。。(里面存储的是字符串类型 还是字符串 是的话如何转换) //如果自动登录 想消息记录的 cookie中 //如果现在自动登录 就用用户名 和两次加密后的密码 存储到cookie中 // 如果是使用web form 就不用考录请求 相应的东西。。就按钮点击了要怎么样。。发生一个什么什么事件了 又怎么样 这样来考虑 // 不要太混合起来考虑 容易弄混掉。 if (!string.IsNullOrEmpty(Request["autoLogin"])) { HttpCookie ck1 = new HttpCookie("cp1", userName); //password = ; HttpCookie ck2 = new HttpCookie("cp2", WebCommon.GetMd5String(WebCommon.GetMd5String(password).ToUpper())); ck1.Expires.AddDays(7); ck2.Expires.AddDays(7); Response.Cookies.Add(ck1); Response.Cookies.Add(ck2); } Session["userInfo"] = user; // 登录成功之后回到之前的页面 if (string.IsNullOrEmpty(Request["HiddenReturnUrl"])) { Response.Redirect("/Index.aspx"); } else { Response.Redirect(Request["HiddenReturnUrl"]); } } else { //跳转到提示页面给出提示 //在页面的某一块位置显示一下消息。。 //注册一个js 的方法 给出提示 Msg = msg; } return(true); //userInfo.g }