我首先解释一下这个场景:
我在计算机A中有一个IE浏览器。在IE中我有一个插件,所以我可以访问文档对象,所以我可以在给定的时间内抓取cookie。
我想将该cookie转移到另一台计算机B中的新浏览器。
为了在新计算机BI中启动浏览器使用InternetExplorer对象,我可以使用对象实例控制浏览器,但我不知道如何将第一台计算机A的cookie“注入”到新的创建了IE浏览器。
我尝试了两种方法。
首先,我尝试在使用WinInet API启动浏览器之前编写cookie InternetSetCookie 。
其次,我尝试拦截 BeforeNavigate2 事件,并在HTTP请求的标头中设置Cookie。
但这些都没有奏效:(
是否可以在导航到网站之前在新的Internet Explorer中设置cookie,从而能够维护用户在之前的计算机中拥有的内容?
谢谢:)
更新:我仍然遇到此问题,并使用wireshark进行了一些其他调查。
在BeforeNavigate2的情况下,IExplore只是忽略标题中的“Cookie:”值。
在InternetSetCookie的情况下,它似乎正常工作。它创建常规IExplore导航创建的相同文件,但是当您转到该页面时,IE将忽略包含cookie的文件。
我用来编写cookie的代码是:
string cookie = "COOKIEVALUES";
InternetSetCookie("http://www.facebook.com/", "", cookie+";expires=Sat, 08-Jan-2014 00:00:00 GMT");
答案 0 :(得分:3)
InternetSetCookie()应该是正确的方法。您确认自己设置了正确的值吗?您使用的是规范化网址吗?您是否指定了到期日期?获取URL错误(我不确定是否跟踪/是否有问题)将产生明显的后果,如果您没有设置过期日期,则cookie仅保留在内存中以用于当前进程。< / p>
答案 1 :(得分:0)
首先,尝试使用像IEdebugBar这样的工具 - 它会以干净的方式显示所有发送和接收的标题。
其次,你有没有确认这个厨师没有发送到服务器?由于您似乎试图“窃取”Facebook会话,我认为Facebook将忽略来自具有不同IP,UserAgent等的浏览器的会话cookie。您是否考虑过这一点?
答案 2 :(得分:0)
检查此文
比较代码和工作的2个环境以及在哪里 它不是我发现在代码不起作用的计算机上我 在我的用户帐户下有一个目录Cookies,我看到了该文件 我无法抹去的饼干。
在代码工作的另一台机器上,我没有目录 即使我确实看到该文件,用户下的Cookie也会登录 临时Internet文件目录。