思路:
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 "";
}