【发布时间】:2018-09-02 00:48:05
【问题描述】:
如何清除 web 浏览器控件 winforms C# 的 cookie,有没有办法在 winforms web 浏览器控件中清除有问题的 cookie
【问题讨论】:
标签: c# .net winforms webbrowser-control
如何清除 web 浏览器控件 winforms C# 的 cookie,有没有办法在 winforms web 浏览器控件中清除有问题的 cookie
【问题讨论】:
标签: c# .net winforms webbrowser-control
您可以在导航到该站点之前禁用缓存(包括 cookie)。为此,您可以使用InternetSetOption API 函数并将INTERNET_OPTION_SUPPRESS_BEHAVIOR(81) 选项的值设置为INTERNET_SUPPRESS_COOKIE_PERSIST(3) 值。
示例
以下示例的工作方式类似于开始一个新会话。虽然我在我的机器上登录了outlook.com,但是当我打开这个应用程序并在禁用cookies和缓存后浏览outlook.com时,它就像开始一个新会话一样,我需要登录到outlook.com:
//using System.Runtime.InteropServices;
[DllImport("wininet.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern bool InternetSetOption(IntPtr hInternet, int dwOption,
IntPtr lpBuffer, int dwBufferLength);
private void Form1_Load(object sender, EventArgs e)
{
var ptr = Marshal.AllocHGlobal(4);
Marshal.WriteInt32(ptr, 3);
InternetSetOption(IntPtr.Zero, 81, ptr, 4);
Marshal.Release(ptr);
webBrowser1.Navigate("https://outlook.com");
}
要了解有关这些标志的更多信息,请查看Windows Internet Option Flags。
注意:您可以在我的另一篇文章中找到此答案的 VB.NET 版本 here。
【讨论】: