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

asp.net-mvc – 设置cookie似乎被Chrome忽略而不是IE?奇怪的过

发布时间:2020-12-16 03:34:06 所属栏目:asp.Net 来源:网络整理
导读:我正在使用类似于此的代码通过ASP.NET设置一个带有过期日期的cookie System.Web.Security.FormsAuthenticationTicket ticket = new System.Web.Security.FormsAuthenticationTicket(1,uname,DateTime.UtcNow,DateTime.UtcNow.AddDays(30),bool_persist,"some
我正在使用类似于此的代码通过ASP.NET设置一个带有过期日期的cookie

System.Web.Security.FormsAuthenticationTicket ticket = new System.Web.Security.FormsAuthenticationTicket(1,uname,DateTime.UtcNow,DateTime.UtcNow.AddDays(30),bool_persist,"some custom string data here");

string encrypted_ticket = System.Web.Security.FormsAuthentication.Encrypt(ticket);

HttpCookie auth_cookie = new HttpCookie(System.Web.Security.FormsAuthentication.FormsCookieName,encrypted_ticket);
auth_cookie.HttpOnly = true;

if (persist) //passed in to method as parameter
{
     auth_cookie.Expires = DateTime.UtcNow.AddDays(30);
}
auth_cookie.Domain = ".mydomainname.com";
Response.Cookies.Set(auth_cookie);

我还在同一个请求中设置另一个cookie来保留其他一些数据,然后我重定向到另一个页面.

以下标题介绍了响应

HTTP/1.1 302 Found
Location: /redirect_to_this_page
Set-Cookie:.myAuthCookie=TRUNCATED_ENCRYPTED_DATA_FOR_READABILITY; domain=.mydomainname.com; expires=Sun,27-Nov-2011 20:27:16 GMT; path=/; HttpOnly
Set-Cookie:__MyOtherCookie=; domain=full.mydomainname.com; expires=Thu,28-Oct-2010 20:27:24 GMT; path=/; HttpOnly

在对/ redirect_to_this_page的请求中,我没有看到由于某种原因发送的标头.

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:__utma=113888769.1619895090.1322774580.1322774580.1322774580.1;     __utmb=113888769.5.8.1322774827282; __utmc=113888769;     __utmz=113888769.1319833259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmv=
Host:full.mydomainname.com
Referer:http://full.mydomainname.com/referring_page_that_set_cookies
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML,like Gecko)         Chrome/15.0.874.106 Safari/535.2

任何想法如何解决这个问题?每个请求都会设置__MyOtherCookie.

谢谢
穆斯塔法

编辑

一些发现:
IE9正常工作.
如果Cookie具有过期日期,则在获取Set-Cookie标头后,Chrome不会设置Cookie.

因此,如果我发送cookie没有过期(因此它被浏览器视为会话cookie,在浏览器关闭时被杀死),cookie总是被正确设置并且所有请求都包含正确的cookie.

用乔恩斯图尔特的话来说……哇?

解决方法

我们在Chrome(版本21.0.1180)中遇到了同样的问题.尽管我们看到Header上的截止日期,但Windows XP中的某些Chrome会忽略它.然后我们删除了截止日期,Chrome接受了保持会话cookie没有问题.

(编辑:李大同)

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

    推荐文章
      热点阅读