我目前正在为我的ASP.NET网站实现一个桌面应用程序。我正在尝试使用WebBrowser
类来允许用户登录该站点,然后使用WebClient
进行api调用。基于研究和实验,WebBrowser
类和IE共享相同的cookie(这是好的)。但是我很难将经过身份验证的Cookie复制到我CookieContainer
的{{1}}。
我尝试使用WebClient
调用Application.GetCookie
Win32API从IE获取cookie,问题是它不会返回身份验证cookie。它只返回我的网站设置的cookie,如语言和用户首选项。 cookie应该是持久cookie,因为我在关闭并重新打开浏览器后仍然登录。有什么想法吗?
修改:如果InternetGetCookie
不起作用,我还能获得身份验证Cookie吗?
答案 0 :(得分:0)
如HTTP Cookie中所述,InternetGetCookie不会返回服务器标记为不可编写脚本的Cookie,其中包含" HttpOnly" Set-Cookie标头中的属性。
如果未返回身份验证Cookie,可能是因为它设置为HttpOnly
。您可以使用Fiddler检查登录Web请求的响应标头以进行确认。