思路:
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 "";}
原标题:.net登录的一般模式
关键词:.NET