对于很多人来说,我似乎遇到了相反的问题。许多问题都在研究为什么他们的 cookie 会丢失 HttpOnly
环境。我正在尝试找出为什么我的一直徘徊。
我正在使用 ServiceStack
编写代理服务允许 jQuery ajax 调用与未实现 JSONP 或 CORS 的服务器跨域工作(别担心,这实际上是一个合法的项目)。当收到包含 cookie 的响应时,我将其复制到 Response 对象,如下所示:
传入 cookie:
Set-Cookie: MYAPI=8579...05B1; expires=Thu, 10-Apr-2014 13:08:18 GMT; path=/
如您所见,没有 HttpOnly 标志。然后我将 cookie 复制如下:
var cookies = client.CookieContainer.GetCookies(new Uri(apiUrl));
foreach (Cookie cookie in cookies)
{
cookie.HttpOnly = false;
cookie.Domain = "";
Response.Cookies.AddCookie(cookie);
}
然后返回响应。所有数据都正确通过,但 cookie 最终为:
Set-Cookie: MYAPI=8579...05B1; expires=Thu, 10-Apr-2014 13:08:18 GMT; path=/; HttpOnly
我已使用以下内容设置我的 web.config:
<httpCookies httpOnlyCookies="false"/>
关于为什么 HttpOnly
的任何想法正在设置标志,如何绕过它?我确实在某处读到ServiceStack
套HttpOnly
默认情况下,但不知道如何取消设置。
最佳答案
ServiceStack 中添加了配置设置 AllowNonHttpOnlyCookies
来应对这种情况。该设置默认为 false
(强制执行 HttpOnly
cookie)。
关于c# - 如何清除 Cookie 上的 HttpOnly 标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15927109/