C# wininet InternetSetOption

Posted

技术标签:

【中文标题】C# wininet InternetSetOption【英文标题】: 【发布时间】:2010-09-08 18:20:25 【问题描述】:

我正在使用How to clear System.Windows.Forms.WebBrowser session data?,只要只有一个浏览器,它就可以工作。是否可以在同一个应用程序中为 2 个 Web 浏览器控件提供自己的会话?

如果是这样,我是否只需要改变

InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);

InternetSetOption(webBrowser1.Handle, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);

?

还是需要别的东西?

【问题讨论】:

不是webBrowser1.Handle,而是窗口句柄。它需要会话句柄。我很惊讶 NULL 有效,但您无法从浏览器中获取会话句柄。 只是为了确保我理解,我试图做的事情是不可能的? 【参考方案1】:

你试过了吗?我认为这是不可能的,因为会话是按浏览器实例存储的。也许您需要从属于该控件的会话中清除数据,然后您可以保留另一个控件的会话数据。

【讨论】:

对不起,我应该将它添加到 cmets。是的,我试过了,它返回 false 虽然我注意到 .Handle 给出了窗口的句柄,而不是控件。你说的我该怎么做? 在使用会话时,我总是使用代号将其存储在会话中。所以 Session["count"] = count;将存储当前计数。但我不知道你的商店是什么样子的,你似乎在使用 cookie,从未使用过:P。

以上是关于C# wininet InternetSetOption的主要内容,如果未能解决你的问题,请参考以下文章

使用 wininet.dll 的 FtpFindFirstFile 错误

C# 等效于 VB DLL 函数声明 (InternetSetOption)?

wininet 或 winhttp,这是 POST 请求的首选

使用 wininet 设置代理设置

WinInet - 没有 Internet Explorer 就无法工作?

以编程方式清除 WinInet DNS 缓存