.net Windows身份验证网站、Chrome、IIS和Sharepoint身份验证

.net Windows身份验证网站、Chrome、IIS和Sharepoint身份验证,.net,sharepoint,webrequest,ntlm,content-negotiation,.net,Sharepoint,Webrequest,Ntlm,Content Negotiation,对于客户,我们有一个在IIS中启用Windows身份验证的网站,该网站连接到Sharepoint Web服务并在其上放置文件。 在IIS上,已启用Windows身份验证: Sharepoint service使用windows身份验证,请求通过以下方式生成: WebRequest req = WebRequest.Create(destUri); req.Method = "PUT"; req.Headers.Add("Overwrite", "

对于客户,我们有一个在IIS中启用Windows身份验证的网站,该网站连接到Sharepoint Web服务并在其上放置文件。 在IIS上,已启用Windows身份验证:

Sharepoint service使用windows身份验证,请求通过以下方式生成:

WebRequest req = WebRequest.Create(destUri);

req.Method = "PUT";
req.Headers.Add("Overwrite", "F");
req.Timeout = System.Threading.Timeout.Infinite;

req.UseDefaultCredentials = true;
req.PreAuthenticate = true;
req.Credentials = CredentialCache.DefaultCredentials;

Stream outStream = req.GetRequestStream();
使用Edge时,它完全按照预期工作,但使用Chrome或Firefox时,Sharepoint会返回一个授权(401)错误。

对于这两种浏览器,我们可以看到使用浏览器的开发工具可以正确发送授权http头:

WWW-Authenticate: Negotiate oYG2MIGzoAMKAQChCwYJKoZIgvcSAQICooGeBIGbYIGYBgkqhkiG9xIBAgICAG+BiDCBhaADAgEFoQMCAQ+ieTB3oAMCARKicARuzU8jQ5ujyQAOWWouNMC0eMhlMLOECtjeSDjEK42yn4iRjbG4pek8lwuADX2ex/XW5ENE++rWyY8TQPYWEswAjhp0Hz3dI/bXK9q2RBw+s0M7NPeKEuEgxEwM+3coA78KbUZnS7TKk8gEFKpwO4M=
(例如)

我想问题与Chrome/Firefox如何处理Windows身份验证和用户信息(如密码)有关,但我不知道如何修复它。我们最终可以修改Chrome/Firefox设置和IIS设置(如Windows身份验证提供程序部分)。 下面,您将找到有关针对Sharepoint执行的请求的更多详细信息,这些请求是通过Wireshark捕获的

谢谢大家!