首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何清除System.Windows.Forms.WebBrowser会话数据?

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

Stack Overflow用户
提问于 2009-01-12 04:49:02
回答 7查看 52.2K关注 0票数 25

如何在不重启应用程序的情况下清除当前会话数据(cookies、缓存数据、身份验证会话等)?

更新:我说的是Windows.Forms中的WebBrowser控制,而不是ASP.Net会话。

EN

回答 7

Stack Overflow用户

发布于 2009-12-09 13:45:06

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

代码语言:javascript
复制
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);

并在需要清除会话时使用此方法。

代码语言:javascript
复制
InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);
webBrowser1.Document.Window.Navigate(url);
票数 52
EN

Stack Overflow用户

发布于 2010-06-29 03:42:59

我尝试了所有方法来清除表单数据,这样下一个用户就不会看到以前的电子邮件地址,等等。我最终这样做是为了清除cookie……

代码语言:javascript
复制
string[] theCookies = System.IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Cookies));
foreach (string currentFile in theCookies)
{
   try
   {
      System.IO.File.Delete(currentFile);
   }
   catch (Exception ex)
   {
   }
}
票数 4
EN

Stack Overflow用户

发布于 2016-11-17 01:14:29

代码语言:javascript
复制
Private Const INTERNET_OPTION_END_BROWSER_SESSION As Integer = 42

    <DllImport("wininet.dll", SetLastError:=True)>
    Public Shared Function InternetSetOption(hInternet As IntPtr, dwOption As Integer, lpBuffer As IntPtr, lpdwBufferLength As Integer) As Boolean
    End Function

    Private Sub WebBrowserFormName_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Closed
        InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0)
    End Sub

只是在VB中张贴寻找这个答案的人。编码快乐!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/434469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档