如何强制WebBrowser控件使用新会话或清除会话

在我的应用程序中,用户将通过单击菜单打开多个选项卡。 每个选项卡都是动态创建的,包含用于加载URL的webbrowser控件

每个URL指向同一个服务器,而某些URL没有访问权限,因此Resource not have access收到Resource not have access错误。

现在,问题是,例如 – 如果用户直接点击加载了webbrowser URL的Menu3和相关选项卡,然后按照下一步,URL包含其他弹出链接,那么它可以工作并能够弹出URL。

现在,用户点击没有访问权限的Menu5 ,获取此错误Resource not have access (从服务器拒绝). Its fine. NOw, again URL reach to ). Its fine. NOw, again URL reach to ). Its fine. NOw, again URL reach to Menu3 and try to open sub link to popup dialog then it gives 403禁止错误拒绝访问。 它最初工作,但后来它只是给出了这个错误。

看起来,我需要清除WebBrowser Control缓存或强制启动新会话。

任何人都可以指导我如何强制WebBrowser启动新会话或删除早期缓存?

有一个更好的选择。 它使用WinINet.DLL并调用SetInternetOptions

 [DllImport("wininet.dll", SetLastError = true)] private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); private const int INTERNET_OPTION_END_BROWSER_SESSION = 42; InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0); 

这将结束浏览器的会话缓存。 调用此方法后,webbrowser控件将忘记内存中的任何会话

WebBrowser控件的缓存与Internet Explorer相同。 你有各种选择:

1)完全清除缓存(也将清除Internet Explorer!):

https://stackoverflow.com/a/24401521/2633161

2)在服务器响应中使用一些标签:

  

3)使用随机查询字符串强制刷新:

 WebBrowser1.Navigate('http://www.example.com/?refresh=' & Guid.NewGuid().ToString()) 

4)强制刷新页面(这将加载页面2次!):

 WebBrowser1.Navigate('http://www.example.com/') WebBrowser1.Refresh(WebBrowserRefreshOption.Completly)