.net 刷新页面cookie丢失

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net 刷新页面cookie丢失相关的知识,希望对你有一定的参考价值。

创建完cookie,当前页取值为空,需要跳转后才会创建cookie成功,怎么可以实现不需要跳转就可以创建成功

设置一下cookie的过期时间追问

刚创建执行完,刷新页面就丢失,应该不是过期时间的问题

追答

这种还真没遇过,如果你在服务器中改的话,有一种可能就是Cs文件改动太频繁,导致cookie失效
要不就是cookie哪里写得有点小失误
if (System.Web.HttpContext.Current.Request.Cookies["strId"] != null)

Response.Cookies["strId"].Value = dt.Rows[0]["user_id"].ToString();
//过期时间设置为1天
Response.Cookies["strId"].Expires = DateTime.Now.AddDays(1);

追问

HttpCookie Cookies = new HttpCookie("UserDomain");
Cookies.Expires = DateTime.Now.AddHours(-1); HttpContext.Current.Response.AppendCookie(Cookies);
Cookies = new HttpCookie("UserDomain");
Cookies.Values["UserDomainName"] = HttpContext.Current.Server.UrlEncode("admin");
HttpContext.Current.Response.AppendCookie(Cookies); 创建后不能获取到

追答

写得好复杂。就直接赋值
获取不到那就是赋值没成功
Response.Cookies["strId"].Value =***
Response.Cookies["strId"].Expires = DateTime.Now.AddHours(-1);
获取cookie值
string cookieId = Server.htmlEncode(Request.Cookies["strId"].Value);

追问

我知道问题了,创建完cookie,要跳转或者刷新页面cookie才算是创建成功!

参考技术A 你有木有创建成功?浏览器是不是禁用了cookie啊。追问

程序中另一个cookie 没问题!

参考技术B 获取不到就重新获取。

本地存储和cookie

localStorage 和 cookie一样,数据存储在浏览器客户端,不会随刷新页面,关闭页签,打开新网站,乃至关闭浏览器而改变;

sessionStorage会在关闭页签,关闭浏览器时失去数据,刷新浏览器,前进后退时不会丢失数据,并且sessionStorage的数据每个窗口是独立的,不会多窗口共享数据;

cookie会每次发送http请求时被发送到服务器,localStorage和sessionSotrage没有这样多余的操作;

cookie的存储限制在4k之内,localStorage和sessionStorage有更大的存储空间;

localStorage和sessionStorage存储数据的方法:

setItem(key, value)  getItem(key)  removeItem(key) clear()

 

以上是关于.net 刷新页面cookie丢失的主要内容,如果未能解决你的问题,请参考以下文章

浏览器:刷新时 Cookie 丢失

.net 刷新了第二次页面后就获取不到cookies了,这是啥回事?

vue单页面应用刷新网页后vuex的state数据丢失的解决方案

vue项目刷新页面导致数据消失问题解决

Vue 刷新网页后 vuex 的 state 数据丢失的解决方案

vue: 解决vuex页面刷新数据丢失问题