我们使用IWebBrowser2来显示网页,但它似乎无法看到与正常IE看到的相同的cookie。
例如,如果我在IE中登录Facebook并查看“记住我”,下次我打开IE并转到Facebook时,我仍然会保持登录状态。
但是,如果我使用IWebBrowser2去Facebook,我就不再登录了。
在我看来,IWebBrowser2和IE使用两组不同的cookie?如果是这样,我如何让IWebBrowser2看到与IE相同的cookie?
非常感谢。
答案 0 :(得分:1)
您的体验似乎是由Loosely Coupled IE (LCIE)引起的。此功能使用low integrity level在其自己的流程中运行每个标签。这似乎可以防止cookie共享,至少如果你的程序以中等或高完整性级别运行。 (使用Process Explorer查看流程的完整性级别。)
如果禁用每个选项卡进程,以便每个选项卡都在主IE进程内运行(具有中等完整性级别),则此IE和IWebBrowser2之间的cookie共享有效。要禁用,您必须创建/编辑注册表项。您可以在此处调整标签使用的进程数:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth
将其设置为0,您可以完全禁用该功能。如果密钥不存在则创建它。 (Source.)
我不确定这样做的安全隐患。一个标签崩溃将取消整个IE流程。但它可能会让你朝着正确的方向前进。