gpt4 book ai didi

asp.net-mvc - set-cookie 似乎被 Chrome 忽略了,但 IE 却没有?奇怪的过期问题? 302 重定向?好天哪,你们大家

转载 作者:行者123 更新时间:2023-12-02 06:49:55 24 4
gpt4 key购买 nike

我正在使用与此类似的代码通过 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,以保留一些其他数据,然后重定向到另一个页面。

响应中包含以下 header

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 的请求中,由于某种原因我没有看到 header 被发送。

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 有过期日期,Chrome 在获取 Set-Cookie header 后不会设置 Cookie。

因此,如果我发送没有过期的 cookie(因此浏览器将其视为 session cookie,在浏览器关闭时将其杀死),则 cookie 始终会正确设置,并且所有请求都包含正确的 cookie。

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

最佳答案

我们在使用 Chrome(版本 21.0.1180)时遇到了同样的问题。尽管我们在 header 上看到了过期日期,但 Windows XP 中的某些 Chrome 忽略了它。然后我们删除了过期日期,Chrome 接受了保留 session cookie,没有任何问题。

关于asp.net-mvc - set-cookie 似乎被 Chrome 忽略了,但 IE 却没有?奇怪的过期问题? 302 重定向?好天哪,你们大家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7934661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com