MVC用户登录注销(使用cookie+session)

第一次写博客,使用MVC做一个简易版的用户登录,注销

1.先完成登录的静态页面,如下

2.点击登录,后台处理方法,校验成功之后,设置session的过期时间和[username]

if (name == "admin" && pwd == "123.com")
{
Session["username"] = name.ToString();
Session.Timeout = 2;
// HttpCookie cook = new HttpCookie("cookusername", name.ToString());
// Response.Cookies.Add(cook);
return true;
}
return false;

3.验证成功之后,我们就完成了用户登录

4.用户注销后台代码:

public bool Del()
{
try
{
//删除全部session
// Session.Abandon();
//删除一个session
Session["UserName"] = null;
Session.Remove("UserName");

return true;
}
catch (Exception)
{

return false;
}

}

5.验证是否登录,如果没有登录跳转到登录页面

public ActionResult About()
{
HttpContextBase context = this.HttpContext;
if (Session["username"]== null)
{
return RedirectToAction("index");
}
string session = context.Session.SessionID;
ViewBag.Message ="sessionId:"+ session;

return View();
}

6.就此完成用户的登录注销,项目代码地址:

7.总结:

cookie与session进行验证过程:session[username]=admin      微软会自动的生成一个sessionID   也就是

 

微软生成这个数据后   会自动得在浏览器端保存一个id='ujqcl1sxips5bdpjtbe0eeij'的值 ,key=“username”,value=“admin”的cookie,每当客户端发送请求时,  浏览器 携带id(ujqcl1sxips5bdpjtbe0eeij)和key(username)和value(admin)  去服务器端做校验,

如果存在id=‘ujqcl1sxips5bdpjtbe0eeij’  key=“username”,value=“admin”信息,并且过期时间还没有到,则用户存在;如果已到过期时间,或者客户端,服务器端信息不匹配   则都需要重新登录

这种方式只适合单一服务器,对于多台服务器,用户session做不到共享,就会出现需要多次登录的情况,这是需要共享session或者jwt

   

猜你喜欢

转载自www.cnblogs.com/lwlr/p/9046596.html
今日推荐