加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 为WebBrowser控件设置身份验证标头 – ASP.NET

发布时间:2020-12-15 07:55:38 所属栏目:百科 来源:网络整理
导读:我在我的asp.net应用程序中使用WebBrowser控件来生成网页的屏幕截图.在更改应用程序池帐户之前,我能够生成图像.我给了新应用程序池所有必要的权限,我可以从IE浏览我的页面.但是当我以编程方式通过Web浏览器控件导航到它时,我得到的是401.2.我在IIS 7.0中设置
我在我的asp.net应用程序中使用WebBrowser控件来生成网页的屏幕截图.在更改应用程序池帐户之前,我能够生成图像.我给了新应用程序池所有必要的权限,我可以从IE浏览我的页面.但是当我以编程方式通过Web浏览器控件导航到它时,我得到的是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) + "rn";
myBrowser.Navigate(uri,"",null,authHeader);

有任何想法如何设置标题与其他细节,如useragent?

解决方法

如果要在标头中包含用户代理,则应该执行以下操作:
string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + 
        "rn" + "User-Agent: MyUserAgentrn";

请记住,每个标题必须以回车换行符对终止.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读