【问题标题】:How to clear the HttpOnly flag on Cookies?如何清除 Cookie 上的 HttpOnly 标志?
【发布时间】:2013-04-02 08:51:04
【问题描述】:

对很多人来说,我似乎遇到了相反的问题。许多问题都研究了为什么他们的 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,但看不到如何取消设置。

【问题讨论】:

标签: c# http cookies ormlite-servicestack


【解决方案1】:

ServiceStack 中添加了一个配置设置AllowNonHttpOnlyCookies 来应对这种情况。该设置默认为false(强制执行HttpOnly cookie)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2011-04-22
    相关资源
    最近更新 更多