正在设置WebBrowser控件的身份验证标头-ASP.NET

本文关键字:-ASP NET 身份验证 设置 WebBrowser 控件 | 更新日期: 2023-09-27 17:58:51

我正在asp.net应用程序中使用WebBrowser控件来生成网页的屏幕截图。在更改应用程序池帐户之前,我一直能够生成图像。我已经给了新的应用程序池所有必要的权限,我可以从IE浏览我的页面。但当我通过web浏览器控件程序导航到它时,我得到了401.2。我在IIS 7.0中设置了"失败的请求跟踪规则",并使用Fiddler探查请求,我发现身份验证标头不正确。

但是webbrowsernavigation有一个重载方法,我们可以在其中传递自定义的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);

有什么想法可以用其他细节(如useragent)设置标题吗?

正在设置WebBrowser控件的身份验证标头-ASP.NET

如果你想在头中包含用户代理,你可能应该这样做:

string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + 
        "'r'n" + "User-Agent: MyUserAgent'r'n";

请记住,每个标头都必须以回车换行对结束。