HttpClient和WebClient请求/响应不适用于带有DefaultCredentials的Intranet

问题描述

问题:我无法通过使用HttpClient或WebClient从公司内部网页获取内容。但是,我可以通过直接访问URL来获取内容。

详细信息:.NET Core 3.1 Razor页面,IIS 10,Windows身份验证。

我有一个网站http:// myintranet / Editor / Bib / 4343,用户可以在其中按下按钮来生成静态页面。在幕后,它尝试从http:// myintranet / Editor / NewBib / 4343 / true读取流,并从中创建一个静态HTML页面。

单击按钮时,响应始终为IIS 10.0 Detailed Error - 401.1 - Unauthorized等。

但是,当我直接在浏览器中访问该网页时,它会很好地打开(请注意,如果这是第一次访问该网站,浏览器会提示我输入我的用户名和密码。然后,浏览器记住这些凭据。

还请注意,当通过Visual Studio从本地主机运行它时,一切正常,静态页面也可以正确下载。

这是我的代码:

版本1:

public IActionResult OnPostGenerateStaticPage()
        {
            try
            {
                HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true,PreAuthenticate = true });
                HttpResponseMessage response = client.GetAsync(Url.PageLink().Replace("Bib","NewBib") + "/true").Result;
                var indexPageContents = response.Content.ReadAsStreamAsync().Result;

                var cd = new System.Net.Mime.ContentDisposition
                {
                    FileName = BibNumber + ".htm",Inline = false,};
                Response.Headers.Add("Content-Disposition",cd.ToString());
                return File(indexPageContents,"text/html");
            }
            catch (IOException)
            {
                return RedirectToPage("./Bib");
            }
        }

版本2:

public IActionResult OnPostGenerateStaticPage()
        {
            try
            {
                WebClient client = new WebClient { UseDefaultCredentials = true };       
                string desiredUrl = Url.PageLink().Replace("Bib","NewBib") + "/true";
                var indexPageContents = client.OpenRead("desiredUrl");

                var cd = new System.Net.Mime.ContentDisposition
                {
                    FileName = BibNumber + ".htm","text/html");
            }
            catch (IOException)
            {
                return RedirectToPage("./Bib");
            }
        }

另一件事,我已要求Web服务器管理员检查NTLM是否高于该网站的身份验证提供程序的协商能力。另外,禁用了匿名身份验证和基本身份验证,并启用了Windows身份验证。

不确定从这里去哪里...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...