C# 禁用webbrowser c应用程序中的Cookie读/写

C# 禁用webbrowser c应用程序中的Cookie读/写,c#,cookies,webbrowser-control,session-cookies,httpcookie,C#,Cookies,Webbrowser Control,Session Cookies,Httpcookie,我希望网站不能在webbrowser c控件应用程序中读取cookie或写入新cookie。我更愿意在webbrowser c应用程序运行时禁用所有网站的所有读/写cookie操作,如果没有,则我有一个应禁用其读/写cookie操作的网站列表 我使用的是.NET 2.0 framework,但也可以使用4.5。您不能仅在web浏览器控件上禁用Cookie。该控件本质上是一个嵌入式Internet Explorer,并共享用户的Internet Explorer设置。如果您不介意在Internet

我希望网站不能在webbrowser c控件应用程序中读取cookie或写入新cookie。我更愿意在webbrowser c应用程序运行时禁用所有网站的所有读/写cookie操作,如果没有,则我有一个应禁用其读/写cookie操作的网站列表


我使用的是.NET 2.0 framework,但也可以使用4.5。您不能仅在web浏览器控件上禁用Cookie。该控件本质上是一个嵌入式Internet Explorer,并共享用户的Internet Explorer设置。如果您不介意在Internet Explorer的所有其他实例上阻止Cookie,您可以使用Chrome或Firefox进行其余的浏览,您可以执行以下操作:

发件人:

要阻止WebBrowser控件中的Cookie,可以执行以下操作 步骤,事实上,这与在IE中阻止Cookies是一样的

在IE的工具菜单下选择Internet选项; 选择隐私选项卡。 单击高级。。。设置组框中的按钮。 选中覆盖自动cookie处理选项。 选中两个块选项。 单击“确定” 您也可以在访问页面后删除所有cookies,但我认为这不会实现您完全匿名的目标

我做了一点挖掘,我想你可以使用和国旗。根据文档,这只适用于Internet Explorer 8及更高版本

private const int INTERNET_OPTION_SUPPRESS_BEHAVIOR = 3; //INTERNET_SUPPRESS_COOKIE_PERSIST - Suppresses the persistence of cookies, even if the server has specified them as persistent.

[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); 
然后,在初始化应用程序时,请尝试:

InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SUPPRESS_BEHAVIOR, IntPtr.Zero, 0);
希望这能让你走上正轨。另见:

您可以与选项标志一起使用。 此选项标志应与INTERNET\u SUPPRESS\u COOKIE\u PERSIST选项一起使用

public static class NativeMethods
{
    [DllImport("wininet.dll", SetLastError = true)]
    private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, 
                                                 IntPtr lpBuffer, int lpdwBufferLength);

    public static void SuppressCookiePersist()
    {
        int dwOption = 81; //INTERNET_OPTION_SUPPRESS_BEHAVIOR
        int option = 3; // INTERNET_SUPPRESS_COOKIE_PERSIST

        IntPtr optionPtr = Marshal.AllocHGlobal(sizeof(int));
        Marshal.WriteInt32(optionPtr, option);

        InternetSetOption(IntPtr.Zero, dwOption, optionPtr, sizeof(int));
        Marshal.FreeHGlobal(optionPtr);
    }
}
该设置对每个进程都有效,因此可以在任何位置调用该方法,但在webBrowser.Navigate之前

注: -需要Internet Explorer 8.0或更高版本。 -要重置,请使用int选项=4//INTERNET\u禁止\u COOKIE\u保持\u重置