加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在内容页面之间遍历时,cookie值消失

发布时间:2020-12-15 20:00:00 所属栏目:百科 来源:网络整理
导读:在我的应用程序中有一个登录机制,用于保存一个cookie,其中包含刚刚登录的用户的信息 private void CreateCookie(LoginEventArgs args) { HttpCookie cookie = new HttpCookie("user"); cookie.Values["name"] = args.User_Name; cookie.Values["id"] = args.
在我的应用程序中有一个登录机制,用于保存一个cookie,其中包含刚刚登录的用户的信息

private void CreateCookie(LoginEventArgs args)
     {
         HttpCookie cookie = new HttpCookie("user");
         cookie.Values["name"] = args.User_Name;
         cookie.Values["id"] = args.ID;
         cookie.Expires = DateTime.Now.AddDays(1);            
         Response.Cookies.Add(cookie);
     }

在我的母版页面加载我执行检查以查看此cookie是否存在:

HttpCookie cookie = Request.Cookies["user"] ;
   if( (cookie != null) && (cookie.Value != ""))  
   {
        if (Session["user"] == null)
            Login_Passed(this,new LoginEventArgs(cookie.Values["name"].ToString(),int.Parse(cookie.Values["id"])));
   }

现在如果我登录(创建一个cookie),关闭浏览器,然后运行我的应用程序.再次cookie
存在它的值是正确的并且用户“自动”登录.

如果我首先从启动内容页面重定向到不同的内容页面
cookies值也完好无损,

问题是当我第二次重定向回到不同的内容页面时,
主页加载,进行检查
cookie存在,但值被删除…

关于为什么会这样的想法?

也许我退出的方式可能是这个问题的原因:

当我注销时,我创建一个与1天前相同名称的cookie.

private void Remove_Cookie()
   {
        HttpCookie cookie = new HttpCookie("user");
        cookie.Expires = DateTime.Now.AddDays(-1);
        Response.Cookies.Add(cookie); 
   }

在iv’e描述我没有正式退出的情况下,我只是结束我的应用程序,所以这不应该
有任何影响.

解决方法

哦,问题是不可想象的
特别感谢Peter Bromberg

http://www.eggheadcafe.com/tutorials/aspnet/198ce250-59da-4388-89e5-fce33d725aa7/aspnet-cookies-faq.aspx

在“消失的Cookie”一文的部分

作者说,如果你有一个关于Response.Cookies [“cookie_name”]的手表
浏览器会创建一个新的空cookie来覆盖您的cookie.

我使用了这样的手表,这使我的饼干松散了它的价值,当我把它取下时,饼干保留了它的价值.

道德是不要观看Response.Cookies [“”]
我还读了一些其他帖子,如果你检查

if( Response.Cookies["cookie_name"] != null    )

例如,它也被覆盖.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读