是否可以在Windows窗体中“沙盒化”IE?

假设我在Windows窗体中有一个webbrowsercontrol,用户从表单登录到一个安全的站点。 如果用户单独打开IE,它也会显示它们已登录。是否可以隔离Windows窗体的IE实例?

WebBrowser控件构建在WebBrowser ActiveX之上,后者位于WinInet之上。 因此,您应该能够通过WinInet API影响其行为。

您可以尝试调用InternetSetOption WinInet API来设置INTERNET_OPTION_END_BROWSER_SESSION选项以结束当前会话并启动新会话。 要确保调用仅影响当前进程,请使用INTERNET_HANDLE_TYPE_INTERNET句柄。

你没有提到你的版本; 行为从IE7更改为IE8。

在IE7和IE6中,您可以打开多个窗口并在一个站点上使用不同的用户ID进行身份validation。

在IE8中,您的会话状态在浏览器会话中共享。

您可以在隐私模式下打开IE; 这应该允许会话沙箱。

IE8具有命令行开关-nomerge ,它使用新会话启动浏览器

当您登录某个站点时,通常会从服务器上获取一个cookie,标记您已“登录”(非常简单……)。 我的猜测是删除cookie。 看这里:

如何从windows.form中删除Cookies?