use*_*045 25 .net c# browser webbrowser-control
如何在不重新启动应用程序的情况下清除当前会话数据(cookie,缓存数据,身份验证会话等)?
更新:我在谈论Windows.Forms中的WebBrowser控件,而不是ASP.Net会话.
小智 51
要清除会话(例如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);
Run Code Online (Sandbox Code Playgroud)
并且只要需要清除会话就使用此方法.
InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);
webBrowser1.Document.Window.Navigate(url);
Run Code Online (Sandbox Code Playgroud)
您必须认识到,从 Web 服务器的角度来看,跟踪“会话状态”的方式是向客户端浏览器提供一个包含会话 ID 的 cookie。当浏览器回发到服务器时,该 cookie 允许服务器将请求与存储的会话状态关联起来。
所以解决办法就是清除webBrowser控件的cookies。例如 webBrowser1.Document.Cookies = "",我认为这应该有效。
ASP.NET 还具有所谓的“无 cookie 会话”,它通过将会话 ID 添加到 url 来工作。因此,如果这是服务器使用的机制,您可以尝试将其从 url 中过滤掉。但你不会看到那么多,它主要是基于 cookie 的会话状态。
| 归档时间: |
|
| 查看次数: |
49403 次 |
| 最近记录: |