繁体   English   中英

Web浏览器控件无法创建cookie?

[英]Web browser control cannot create cookies?

场景:

我有一个Web应用程序(SnapshotServer),它使用WebBrowser控件拍摄网页的快照图像。

我在SnapshotServer中使用WebBrowser控件导航到安全Web应用程序(ImageHost)的入口页面,然后将我重定向到所需的页面。 ImageHost应用程序受使用Cookie的FormsAuthentication保护。 我导航到的输入页面负责我的登录-这将创建Auth cookie。

从ImageHost生成响应后,我将WebBrowser控件内的结果转换为图像。

问题:

当我使用IIS7在PC(Windows 7,IE8)上运行SnapshotServer并导航到开发服务器(Windows 2008 R2,IE8)上的ImageHost时,结果如所要求-我登录ImageHost并重定向到页面我想要一张图片。 当我在任何Windows 2008 R2服务器上使用IIS7运行SnapshotServer并导航到开发服务器(Windows 2008 R2,IE8)上的ImageHost时,结果不是所要求的-ImageHost无法登录-因此我的映像属于登录名页。 它无法登录的原因是它没有创建Auth cookie。

因此,我想知道是否有人可以告诉我,为什么从Windows 2008服务器运行WebBrowser控件时无法创建cookie。

首先,它与您的Windows版本,IIS版本甚至IE版本无关。

这可能与Windows 2008上IE上的某些安全问题有关。检查Internet选项并启用cookie(如果已禁用,我认为不是)。

您也可以强制WebBrowser控件使用cookie容器,如下所示:

public partial class WebBrowserControl : Form
{
     private String url;

     [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
     public static extern bool InternetSetCookie(string lpszUrlName, string    lbszCookieName, string lpszCookieData);

     public WebBrowserControl(String path)
     {
          this.url = path;
          InitializeComponent();

          // set cookie
          InternetSetCookie(url, "JSESSIONID", Globals.ThisDocument.sessionID); 

          // navigate
          webBrowser.Navigate(url); 
     }
}

这些应该可以解决您的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM