禁用Cookie在web浏览器中读取/写入c#应用程序

我希望网站无法读取cookie或在webbrowser c#控制应用程序中写入新的cookie。当webbrowser c#应用程序运行时,我宁愿禁用所有网站的所有读/写cookie操作,如果不是,那么我有一个应禁用读/写cookie操作的网站列表。禁用Cookie在web浏览器中读取/写入c#应用程序

我使用.NET 2.0框架,但也可以使用4.5

 

您可以使用InternetSetOption与选项标志INTERNET_OPTION_SUPPRESS_BEHAVIOR。 此选项标志应与INTERNET_SUPPRESS_COOKIE_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 option = 4; //INTERNET_SUPPRESS_COOKIE_PERSIST_RESET

 
posted @ 2022-02-14 15:55  左正  阅读(104)  评论(0编辑  收藏  举报