如何清除System.Windows.Forms.WebBrowser会话数据?

如何在不重新启动应用程序的情况下清除当前会话数据(cookie,缓存数据,auth会话等)?

更新:我在谈论Windows.Forms中的WebBrowser控件,而不是ASP.Net会话。

要清除会话(例如HttpOnly cookie),您可以使用wininet.dll中的InternetSetOption()。

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

并且只要需要清除会话就使用此方法。

 InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0); webBrowser1.Document.Window.Navigate(url); 

如果您启用了javascript,则可以使用此代码段清除以清除webbrowser当前所在站点的cookie(我还没有找到清除会话cookie的方法除此之外)。

 webBrowser.Navigate("javascript:void((function(){var a,b,c,e,f;f=0;a=document.cookie.split('; ');for(e=0;e