Nat*_*ate 2 .net c# authentication redirect
我最近问了一个有关服务器返回重定向时的 NetworkCredential 和 HttpWebRequest.Credentials 的问题。我确定构建 NetworkCredential 实例的 CredentialCache 适用于我的场景。现在我有一个临时方法,可以构建一个 CredentialCache,其中所有域名都硬编码在其中。它有效,这很棒。
CredentialCache cache = new CredentialCache();
cache.Add(new Uri("http://example.com"), "Negotiate", loginCredentials);
cache.Add(new Uri("http://redirected.example.com"), "Negotiate", loginCredentials);
request.Credentials = cache;
Run Code Online (Sandbox Code Playgroud)
现在,我需要使其更加灵活。重定向的整个想法是为了服务器上的负载平衡。在调用 HttpWebRequest.GetResponse() 之前,客户端不会确切知道它将被重定向到哪里。构建 CredentialCache 以包含遇到的每个重定向服务器的首选方法是什么?另外,造成如此困难的原因是什么?为什么单个 NetworkCredentials 实例不能满足每个重定向的 HttpWebRequest.Credentials ?跨重定向重用凭据是否会引入安全漏洞?
谢谢。
小智 5
我使用该代码并收到 401 错误(SharePoint 2010 OOB Web 服务)。然后检查其他一些网站并在下面的行中尝试使用“ NTLM”而不是“ ”。Negotiate现在运行良好。
不工作:
cache.Add(new Uri(myProxy.Url), "Negotiate", new NetworkCredential("UserName", "Password", "Domain"))
Run Code Online (Sandbox Code Playgroud)
在职的:
cache.Add(new Uri(myProxy.Url), "NTLM", new NetworkCredential("UserName", "Password", "Domain"))
Run Code Online (Sandbox Code Playgroud)