我在我的 asp.net 应用程序中使用 WebBrowser 控件来生成网页的屏幕截图。在更改应用程序池帐户之前,我能够生成图像。我已经为新的应用程序池提供了所有必要的权限,并且能够从 IE 浏览我的页面。但是当我通过网络浏览器控件以编程方式导航到它时,我得到了 401.2。我在我的 IIS 7.0 中设置了“失败的请求跟踪规则”,并使用 Fiddler 来嗅探请求,我发现身份验证标头不正确。
但是 webbrowser.navigate 有一个重载的方法,我们可以在其中传递自定义的 http 标头。我该如何设置?我只想使用集成身份验证,不想在代码中提供用户名/密码,因为我可能不知道。但是我仍然没有运气尝试以下代码。
System.Uri uri = new Uri(myUrl);
byte[] authData = System.Text.UnicodeEncoding.UTF8.GetBytes("user: passwd");
string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + "\r\n";
myBrowser.Navigate(uri, "", null, authHeader);
任何想法如何使用其他详细信息(例如用户代理)设置标题?