C# Web浏览器控件无法创建Cookie?
情景: 我有一个web应用程序(SnapshotServer),它使用WebBrowser控件拍摄网页的快照图像 我使用SnapshotServer中的WebBrowser控件导航到安全web应用程序(ImageHost)的入口页面,然后将我重定向到所需页面。 ImageHost应用程序受FormsAuthentication保护,FormsAuthentication使用cookie。我导航到的入口页面负责让我登录,这将创建一个Auth cookie 从ImageHost生成响应后,我将WebBrowser控件内的结果转换为图像 问题: 当我在PC(Windows 7,IE8)上使用IIS7运行SnapshotServer,并在我的开发服务器(Windows 2008 R2,IE8)上导航到ImageHost时,结果符合要求-我登录到ImageHost并重定向到我想要的图像页面。 当我使用IIS7在任何Windows 2008 R2服务器上运行SnapshotServer,并导航到我的开发服务器(Windows 2008 R2,IE8)上的ImageHost时,结果不符合要求-ImageHost无法登录-因此我的图像位于登录页中。它无法登录的原因是它没有创建身份验证cookieC# Web浏览器控件无法创建Cookie?,c#,asp.net,authentication,iis-7,C#,Asp.net,Authentication,Iis 7,情景: 我有一个web应用程序(SnapshotServer),它使用WebBrowser控件拍摄网页的快照图像 我使用SnapshotServer中的WebBrowser控件导航到安全web应用程序(ImageHost)的入口页面,然后将我重定向到所需页面。 ImageHost应用程序受FormsAuthentication保护,FormsAuthentication使用cookie。我导航到的入口页面负责让我登录,这将创建一个Auth cookie 从ImageHost生成响应后,我将Web
因此,我想知道是否有人能告诉我为什么WebBrowser控件在Windows 2008服务器上运行时无法创建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);
}
}
这些应该可以解决您的问题首先,它与您的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);
}
}
这些应该可以解决您的问题是否可以在web浏览器控件中创建此错误?我得到此错误全局在当前上下文中不存在。是否可以在web浏览器控件中创建此错误全局在当前上下文中不存在。