如何在不重启应用程序的情况下清除当前会话数据(cookies、缓存数据、身份验证会话等)?
更新:我说的是Windows.Forms中的WebBrowser控制,而不是ASP.Net会话。
发布于 2009-12-09 13:45:06
要清除会话(如HttpOnly cookies),可以使用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);
发布于 2010-06-29 03:42:59
我尝试了所有方法来清除表单数据,这样下一个用户就不会看到以前的电子邮件地址,等等。我最终这样做是为了清除cookie……
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)
{
}
}
发布于 2016-11-17 01:14:29
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中张贴寻找这个答案的人。编码快乐!
https://stackoverflow.com/questions/434469
复制相似问题