C# Internet Explorer打开时WebBrowser控制错误处理Cookie

C# Internet Explorer打开时WebBrowser控制错误处理Cookie,c#,cookies,webbrowser-control,C#,Cookies,Webbrowser Control,我正在用C#构建一个应用程序,它使用WebBrowser控件。这是加载一个特定页面(我没有创建),该页面使用一个弹出窗口和一个cookie来确定上次搜索的“ID”是什么。除了在后台打开Internet Explorer外,这一切都可以正常工作。当Internet Explorer在后台打开时,弹出窗口仅指向设置的第一个ID。IE打开时,cookies似乎没有正确存储 细分: 用户打开Internet Explorer 用户打开我的应用程序 用户在第页上搜索XXX 用户点击弹出窗口。弹出窗口显示

我正在用C#构建一个应用程序,它使用WebBrowser控件。这是加载一个特定页面(我没有创建),该页面使用一个弹出窗口和一个cookie来确定上次搜索的“ID”是什么。除了在后台打开Internet Explorer外,这一切都可以正常工作。当Internet Explorer在后台打开时,弹出窗口仅指向设置的第一个ID。IE打开时,cookies似乎没有正确存储

细分:

  • 用户打开Internet Explorer
  • 用户打开我的应用程序
  • 用户在第页上搜索XXX
  • 用户点击弹出窗口。弹出窗口显示正确的信息
  • 用户在父页面上搜索XXY
  • 用户点击弹出窗口。弹出窗口显示以前的信息(不正确)
正如我所说的,当Internet Explorer未打开时,此功能可以正常工作


有人知道这可能是什么原因或如何预防吗?也许Internet Explorer正在“锁定”它的cookies?

正如我经常做的那样,我在写问题时发现了这个问题。这恰好是安装IE8时WebBrowser控件特有的缓存问题

建议在导航之前清除URL的缓存。使用以下代码:

using System.Runtime.InteropServices;
...
[DllImport("wininet.dll", SetLastError = true)]
private static extern long DeleteUrlCacheEntry(string lpszUrlName);
然后你可以用

DeleteURLCacheEntry(pdfURL);
webBrowser.Navigate(pdfURL);

正如我经常做的那样,我在写问题的时候发现了问题。这恰好是安装IE8时WebBrowser控件特有的缓存问题

建议在导航之前清除URL的缓存。使用以下代码:

using System.Runtime.InteropServices;
...
[DllImport("wininet.dll", SetLastError = true)]
private static extern long DeleteUrlCacheEntry(string lpszUrlName);
然后你可以用

DeleteURLCacheEntry(pdfURL);
webBrowser.Navigate(pdfURL);