我们使用IWebBrowser2来显示网页,但它似乎不能像普通IE一样看到相同的cookies。
例如,如果我在IE中登录Facebook并选中记住我,下一次我打开IE并转到Facebook时,我仍将保持登录状态。
但是,如果我使用IWebBrowser2访问Facebook,我就不会再登录了。
在我看来,IWebBrowser2和IE使用两套不同的cookies?如果是这样,如何让IWebBrowser2看到与IE相同的cookies?
非常感谢。
发布于 2011-11-05 01:07:05
你所经历的似乎是由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进程。但它可能会给你一个正确的方向。
https://stackoverflow.com/questions/3860508
复制相似问题