首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么判断cookies 过期?(时间相减)

2013-09-24 
如何判断cookies 过期?(时间相减)本帖最后由 waCtr 于 2013-09-21 21:42:13 编辑当cookie为空时写入cookie

如何判断cookies 过期?(时间相减)
本帖最后由 waCtr 于 2013-09-21 21:42:13 编辑 当cookie为空时  写入cookie
在写入cookie的时候  把服务器时间写入cookie 时间为1小时
如果cookie不为空  那么怎么判断这个cookie是否超过时间呢?
 如果超过了就重新登录,如果没有则从新写入新时间(也就是取出cookie中的时间与服务器当前时间相减是否过期)
没有超过那么设定新时间

代码如下: 望大神改进


            //写入cookie方法SetUser2(string Name,string Pwd)
            DateTime expires = default(DateTime);
            expires=DateTime.Now.AddHours(1);//1小时
            HttpCookie cookie = new HttpCookie(CookieName);
            cookie.Values.Add("n", Name);
            cookie.Values.Add("P", Pwd);//密码
            cookie.Values.Add("T", expires.ToString("yyyy-MM-dd HH:mm:ss"));//时间
            HttpContext.Current.Response.Cookies.Set(cookie);

           //读取cookie方法
            HttpCookie cookie = HttpContext.Current.Request.Cookies[CookieName];
            if (cookie != null)
            {
                string Name = cookie.Values["n"];
                string PWD = cookie.Values["P"];
                //如何取出时间  并判断是否过期?
                //如果没过期则从新写入1小时过期时间,如果过期则同样创建新cookie
                //从新写入cookie
                SetUser2(this._Name, this.Pwd);
                return true;
            }

分享到:
[解决办法]
密码都写到浏览器端了?随便谁在网页上弄个脚本(例如许多网站都有第三方广告插件)都可以读取密码?

cookie.Values.Add("T", expires.Tick.ToString())

你就把expires写到cookie里了。不要读if (DateTime.Now.CompareTo(cookie.Expires) > 0),应该读取T这个cookie值来得到你的Expires。
[解决办法]

if (DateTime.Now.CompareTo(Convert.ToDateTime(cookie.Values["T"].ToString())) > 0)
            {

            }

热点排行