【问题标题】:c# Copy IE's cookie to CookieContainerc# 复制IE的cookie到CookieContainer
【发布时间】:2015-10-04 14:09:42
【问题描述】:

我目前正在为我的 ASP.NET 网站实现一个桌面应用程序。我正在尝试使用WebBrowser 类来允许用户登录该站点,然后使用WebClient 进行api 调用。根据研究和实验,WebBrowser class 和 IE 共享相同的 cookie(这很好)。但是对于我的WebClient,我很难将经过身份验证的cookie 复制到CookieContainer

我尝试使用Application.GetCookie 调用InternetGetCookie Win32API 从IE 获取cookie,问题是它不返回身份验证cookie。它只返回我的网站设置的 cookie,例如语言和用户首选项。该 cookie 应该是持久性 cookie,因为我在关闭并重新打开浏览器后仍处于登录状态。有什么想法吗?

编辑:如果InternetGetCookie 不起作用,我还能获得身份验证cookie吗?

【问题讨论】:

    标签: c# internet-explorer cookies


    【解决方案1】:

    根据MSDN for InternetGetCookie

    如 HTTP Cookie 中所述,InternetGetCookie 不会返回服务器在 Set-Cookie 标头中使用“HttpOnly”属性标记为不可编写脚本的 cookie。

    如果没有返回认证cookie,可能是因为设置了HttpOnly。您可以通过Fiddler查看登录Web请求的响应头来确认。

    【讨论】:

    • 感谢您指出这一点,这非常有帮助。问题已更新,以更清楚地表明我正在尝试找到解决方案,而不是仅仅为什么它不起作用。
    • @Steve,如果是 HttpOnly,我认为没有办法通过任何 Windows API 访问 cookie。
    猜你喜欢
    • 2015-08-17
    • 2011-04-09
    • 2019-01-09
    • 1970-01-01
    • 2013-07-02
    • 2013-04-05
    • 2020-03-11
    • 1970-01-01
    • 2010-11-15
    相关资源
    最近更新 更多