思路:
1、检查登录:
private string CheckLogin(HttpContext context) { Model.TUser model = (Model.TUser)context.Session["USERModel"]; if (model == null) { return "{"msg": "0", "msgbox": "当前为退出"}"; } else { return "{"msg": "1", "msgbox": "当前为登录"}"; } }
2、点击登录:
private string Login(HttpContext context) { BLL.TUser _blluser = new BLL.TUser(); string loginname = context.Request.Params["loginname"]; string password = context.Request.Params["password"]; string issave = context.Request.Params["issave"];//是否保存密码 Model.TUser model_user = _blluser.GetModel("UserLogin='" + loginname + "'"); bool isSuccess = false; string cookiesPassword = ""; //判断 Cookies 是否存在 if (HttpContext.Current.Request.Cookies["password"] != null) { cookiesPassword = HttpContext.Current.Request.Cookies["password"].Value; if (password == cookiesPassword) /// 输入 和 Cookies 密码 一样 { //登录成功 isSuccess = true; } } //判断输入的密码和数据库的是否匹配 if (!isSuccess) { if (password == model_user.PassWord) { //登录成功 isSuccess = true; } else { //登录失败 isSuccess = false; } } if (isSuccess) { context.Session["USERModel"] = model_user; } else { //登录失败 密码不对 return "{"msg": "0", "msgbox": "密码错误"}"; } //要保存,则写入cookie if (issave == "true") { HttpCookie cookieLogin = new HttpCookie("loginname"); cookieLogin.Expires = DateTime.Now.AddDays(10); cookieLogin.Value = model_user.UserLogin; HttpContext.Current.Response.Cookies.Add(cookieLogin); HttpCookie cookiePassword = new HttpCookie("password"); cookiePassword.Expires = DateTime.Now.AddDays(10); cookiePassword.Value = password; HttpContext.Current.Response.Cookies.Add(cookiePassword); } else {//设置cookie过期,删除cookie HttpCookie cookieLogin = new HttpCookie("loginname"); cookieLogin.Expires = DateTime.Now.AddDays(-1); HttpContext.Current.Response.Cookies.Add(cookieLogin); HttpCookie cookiePassword = new HttpCookie("password"); cookiePassword.Expires = DateTime.Now.AddDays(-1); HttpContext.Current.Response.Cookies.Add(cookiePassword); } return "{"msg": "1", "msgbox": "登录成功"}"; }
3、页面刷新时获取用户保存的账户名和密码并免登陆
private string IsSaveUserLogin(HttpContext context) { ///判断 Cookies 是否存在 if (HttpContext.Current.Request.Cookies["loginname"] == null || HttpContext.Current.Request.Cookies["password"] == null) { return "{"msg":-1, "msgbox": "帐号没保存", "loginname": "", "password": ""}"; } else { string loginname = HttpContext.Current.Request.Cookies["loginname"].Value; string password = HttpContext.Current.Request.Cookies["password"].Value; //免登陆 CookieLogin(context, loginname, password); return "{"msg":1, "msgbox": "帐号保存过", "loginname": "" + loginname + "", "password": "" + password + ""}"; } } private void CookieLogin(HttpContext context, string cookiesLoginname, string cookiesPassword) { Model.TUser model_user = new Model.TUser(); BLL.TUser _blluser = new BLL.TUser(); bool isSuccess = false; ///判断 Cookies 是否存在 if (!string.IsNullOrEmpty(cookiesLoginname) && !string.IsNullOrEmpty(cookiesPassword)) { model_user = _blluser.GetModel("UserLogin='" + cookiesLoginname + "'"); if (model_user.PassWord == cookiesPassword) /// 数据库 和 Cookies密码 一样 { //登录成功 isSuccess = true; } } if (isSuccess) { //登录成功 context.Session["USERModel"] = model_user; } else { //登录失败 密码不对 //return "{"msg": "0", "msgbox": "密码错误"}"; } }
4、用户退出-清除cookie和session
private string UserExit(HttpContext context) { //清除cookie //HttpContext.Current.Request.Cookies.Clear();//无效 HttpCookie cookieLogin = new HttpCookie("loginname"); cookieLogin.Expires = DateTime.Now.AddDays(-1); HttpContext.Current.Response.Cookies.Add(cookieLogin); HttpCookie cookiePassword = new HttpCookie("password"); cookiePassword.Expires = DateTime.Now.AddDays(-1); HttpContext.Current.Response.Cookies.Add(cookiePassword); context.Session["USERModel"] = null; context.Session.Clear(); return ""; }