c#将IE的cookie复制到CookieContainer

时间:2015-10-03 22:29:46

标签: c# internet-explorer cookies

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

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

修改:如果InternetGetCookie不起作用,我还能获得身份验证Cookie吗?

1 个答案:

答案 0 :(得分:0)

根据MSDN for InternetGetCookie

  

如HTTP Cookie中所述,InternetGetCookie不会返回服务器标记为不可编写脚本的Cookie,其中包含" HttpOnly" Set-Cookie标头中的属性。

如果未返回身份验证Cookie,可能是因为它设置为HttpOnly。您可以使用Fiddler检查登录Web请求的响应标头以进行确认。