使 .NET WebBrowser 不与 IE 或其他实例共享 cookie

2023-11-25

由于 C# 中的 WebBrowser 与包括 IE 在内的所有其他 WebBrowser 实例共享 cookie,我希望 WebBrowser 拥有自己的 cookie 容器,该容器不共享以前在 IE 或其他实例中创建的任何 cookie。

例如,当我创建一个 WebBrowser 时,它不应该有任何 cookie。 当我运行 2 个 WebBrowsers 实例时,它们有自己的 cookie 容器,并且不会彼此共享或冲突 cookie。

我怎样才能做到这一点?


您可以使用每个进程执行此操作InternetSetOptionWin32函数:

[DllImport("wininet.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)]
public static extern bool InternetSetOption(int hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);

然后在应用程序启动时调用以下函数:

private unsafe void SuppressWininetBehavior()
{
    /* SOURCE: http://msdn.microsoft.com/en-us/library/windows/desktop/aa385328%28v=vs.85%29.aspx
    * INTERNET_OPTION_SUPPRESS_BEHAVIOR (81):
    *      A general purpose option that is used to suppress behaviors on a process-wide basis. 
    *      The lpBuffer parameter of the function must be a pointer to a DWORD containing the specific behavior to suppress. 
    *      This option cannot be queried with InternetQueryOption. 
    *      
    * INTERNET_SUPPRESS_COOKIE_PERSIST (3):
    *      Suppresses the persistence of cookies, even if the server has specified them as persistent.
    *      Version:  Requires Internet Explorer 8.0 or later.
    */


    int option = (int)3/* INTERNET_SUPPRESS_COOKIE_PERSIST*/;
    int* optionPtr = &option;

    bool success = InternetSetOption(0, 81/*INTERNET_OPTION_SUPPRESS_BEHAVIOR*/, new IntPtr(optionPtr), sizeof(int));
    if (!success)
    {
        MessageBox.Show("Something went wrong !>?");
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使 .NET WebBrowser 不与 IE 或其他实例共享 cookie 的相关文章

  • Rx.NET 中是否有一个Subject 实现,其功能类似于BehaviourSubject,但仅在值发生更改时才发出?

    有没有Subject https learn microsoft com en us previous versions dotnet reactive extensions hh229699 v vs 103 Rx NET 中的实现在功能
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • 循环遍历 C 结构中的元素以提取单个元素的值和数据类型

    我有一个要求 我有一个 C 语言的大结构 由大约 30 多个不同数据类型的不同元素组成 typedef struct type1 element1 type2 element2 type3 element3 type2 element4 1
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • Task.Run 作为反模式?

    我正在将 SQLite NET PCL 库用于我的 WinRT 项目SQliteAsyncConnection类 它提供经典的异步版本SQLiteConnection方法 然而 就该项目而言Github页面 https github com
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • 即使没有异步,CallContext.LogicalGetData 也会恢复。为什么?

    我注意到CallContext LogicalSetData LogicalGetData不按照我期望的方式工作 内部设置的值async方法得到恢复即使没有异步或任何类型的线程切换 无论如何 这是一个简单的例子 using System u
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • 在 C# 中为父窗体中的子窗体控件添加事件处理程序

    我有两种形式 一种是带有按钮和文本框的父表单 单击该按钮时 将打开一个对话框 该子窗体又包含一个文本框和一个按钮 现在我想要的是 每当子表单文本框中的文本更改时 父表单文本框中的文本会自动更改 为了获得这个 我所做的是 Form3 f3 n
  • 如何最好地以编程方式将 `__attribute__ ((unused))` 应用于这些自动生成的对象?

    In my makefile我有以下目标 它将文本 HTML 资源 编译 为unsigned char数组使用xxd i http linuxcommand org man pages xxd1 html 我将结果包装在匿名命名空间和标头保
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person

随机推荐

  • 有没有办法将 matplotlib 图旋转 45 度?

    我正在寻找一种方法 将 matplotlib pyplot Python 库 中生成的绘图旋转 45 度 例如 这样您就可以得到菱形而不是正方形 有人知道这是否可以做到吗 我能想到的一种方法是对所有数据使用旋转过滤器 使其看起来旋转 但绘图
  • 列表视图中的单选按钮

    我在列表视图格式中显示刺痛列表 我使用默认列表视图并使用放置了一个单选按钮simple list item single choice 但这在右侧显示了单选按钮 我想在左侧显示单选按钮 是否可以使用默认列表视图在左侧显示单选按钮 simpl
  • 实现Hadoop的Writable接口的枚举值

    假设我有一个枚举 public enum SomeEnumType implements Writable A 0 B 1 private int value private SomeEnumType int value this valu
  • selectedIndex 在回发期间丢失 - ASP.NET

    我有一个列表框控件
  • iOS 在提交应用程序之前链接到应用程序商店

    我正在为我的 iPhone 应用程序构建一个 关于 控制器 我看到其他应用程序成功地将 市场价格 链接包含在其 关于 控制器中 我是否可以预测我的链接是什么 以便我可以在应用程序的第一个版本中对其进行硬编码 而不是上传 找出链接 发布更新
  • 元刷新重定向到顶部框架

    我有以下代码 Body of this page 这是行不通的 我用谷歌搜索了这个并得出了相同的结论 这应该有效 但事实并非如此 任何人都可以帮我解决
  • 如何在 Rails 中构建由多个模型组成的 JSON 响应

    一 想要的结果 I have User and Item楷模 我想构建一个如下所示的 JSON 响应 user username Bob foo whatever bar hello items id 1 name one zim plan
  • 在 JavaScript 中加入 2 个“线程”

    如果我有一个 ajax 调用关闭获取 通过回调 然后同时运行一些其他代码 当前两个函数完成后 我怎样才能有第三个函数被调用 我确信轮询很容易 setTimeout 然后检查一些变量 但我宁愿回调 是否可以 您可以为 AJAX 调用和同时运行
  • 你能将冒泡排序表述为幺半群或半群吗?

    给出以下冒泡排序的伪代码 procedure bubbleSort A list of sortable items repeat swapped false for i 1 to length A 1 inclusive do if th
  • OutputCache VaryByCustom cookie 值

    有没有办法根据 cookie 值设置 OutputCache 的值 为了简单起见 这是我的方法 OutputCache Duration 600 VaryByParam None VaryByCustom ztest public View
  • std::call_once 是阻塞调用吗?

    我在用着std call once在我的代码中仅初始化一些共享变量一次 调用代码位于由多个线程触发的回调内 我有兴趣知道 因为我在文档中找不到它是否std call once本质上是阻塞的 就好像有一个std lock guard反而 实际
  • 根据TextWrapping属性获取TextBlock的行数?

    我有一个TextBlock在WPF应用程序中 The Text Width Height TextWrapping FontSize FontWeight FontFamily 这个的属性TextBlock是动态的 由用户在运行时输入 每次
  • fetch() 输入意外结束

    我正在使用 fetch 从 api 服务器获取数据 我的错误看起来像这样 Uncaught in promise SyntaxError Unexpected end of input at fetch then blob 你能告诉我我做错
  • 在 if...else 语句中嵌入 case 标签

    G 接受这段代码 它的行为正如我所期望的那样 include
  • 给定一个代表某个值频率的 pandas 系列,我如何将这些频率转换为百分比?

    我正在尝试 kaggle com 泰坦尼克号数据集 泰坦尼克号上每个人的数据 并得出如下性别细分 df pd DataFrame sex male 577 female 314 gender df sex value counts gend
  • 在 ASP.NET MVC 2 中将视图呈现为字符串

    我们需要渲染一个ActionResult to a string将页面添加到我们的内部搜索引擎索引中 我们决定这个解决方案渲染为字符串 我遇到了一个问题ExecuteResult用于处理视图的调用 代码片段 var oldControlle
  • 将文本文件作为 clob 加载到数据库

    将文本文件作为 clob 加载到数据库时出现问题 Oracle 版本 Oracle Database 11g EE 版本 11 2 0 2 0 NLS LANG RUSSIAN RUSSIA CL8MSWIN1251 NLS CHARACT
  • 匿名类型的 IQueryable

    我使用 EntityFramework 使用匿名类型查询和返回部分数据 目前我正在使用IQueryable
  • MKPointAnnotations 快速触摸事件

    我想知道是否有人可以告诉我如何触摸map形式为MKPointAnnotations 我想点击pin on the map并通过返回来转到另一个视图variables of the pin我已经预设了 谁能向我解释一下这件事Swift tha
  • 使 .NET WebBrowser 不与 IE 或其他实例共享 cookie

    由于 C 中的 WebBrowser 与包括 IE 在内的所有其他 WebBrowser 实例共享 cookie 我希望 WebBrowser 拥有自己的 cookie 容器 该容器不共享以前在 IE 或其他实例中创建的任何 cookie