前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cookies+Session保存用户登陆状态

Cookies+Session保存用户登陆状态

作者头像
阳光岛主
发布2019-02-19 11:14:13
1.5K0
发布2019-02-19 11:14:13
举报
文章被收录于专栏:米扑专栏米扑专栏

Cookies+Session保存用户登陆状态的验证方式是纯的Session方式,虽然设置了超时时间,但是好像登陆状态经常会动不动就丢失,导致客户抱怨不断,今天仔细的考虑了一下,决定采用Cookies跟Session结合的方式来判断用户的登陆状态

代码如下:

1、用户登陆代码 HttpContext.Current.Session.Abandon(); //清空当前所有的Session HttpCookie Cookies = new HttpCookie("AdminInfo"); Cookies.Expires = DateTime.Now.AddHours(-1); //设置过期时间,即强制删除先前的Cookie HttpContext.Current.Response.AppendCookie(Cookies);

HttpContext.Current.Session.Add("AdminID", Dt.Rows[0]["ID"].ToString()); HttpContext.Current.Session.Add("AdminName", Dt.Rows[0]["UserName"].ToString()); Cookies = new HttpCookie("AdminInfo");

Cookies.Values["AdminID"] = Dt.Rows[0]["ID"].ToString(); Cookies.Values["AdminName"] = Dt.Rows[0]["UserName"].ToString(); Cookies.Expires = DateTime.Now.AddHours(1);//可不设置或者设置成0(代表在关闭浏览器后,立即失效) HttpContext.Current.Response.AppendCookie(Cookies);        

2、登陆状态判断

代码语言:javascript
复制
if (System.Web.HttpContext.Current.Request.Cookies["AdminInfo"] == null)
{
//Cookies已经丢失,这里将重定向到登陆页面
}
if (System.Web.HttpContext.Current.Session["AdminID"] == null)
{
        System.Web.HttpContext.Current.Session["AdminID"] = System.Web.HttpContext.Current.Request.Cookies["AdminInfo"]["AdminID"].ToString();
}
string AdminID=System.Web.HttpContext.Current.Session["AdminID"].ToString();
if (AdminID== "")
{
//假如用户ID值不存在,跳转到登陆页面
 }
else
{
        //根据用户ID获取该管理员的相关信息,例如权限值等
        HttpContext.Current.Session.RemoveAll();
        HttpContext.Current.Session.Timeout = 300;
        HttpContext.Current.Session["UserName"] ="";
}

问题: 1、为什么不全部使用Cookies作为用户登陆信息的保存值?        初步考虑到Cookies值有大小的限制,有些属性也不应该作为Cookies存放到客户端,这里最好对Cookies进行一个加密的操作,保证数据的安全。 2、Session为何即使设计了20分钟,但往往会马上就过期了?       初步估计是因为Session是根据服务器的信息来的,是存放在服务器端的内存中的,当服务器端内存一吃紧在做释放工作之后,用户信息当然会丢失了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2009年12月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档