如何从.NET(C)应用程序发送具有协商授权头属性的HTTP请求?
我尝试了以下操作,但请求中未添加授权属性…
...
string url = ...;
WebRequest request = WebRequest.Create(url);
request.Credentials = GetCredential();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
...
private CredentialCache GetCredential()
{
string url = ...;
CredentialCache credentialCache = new CredentialCache();
credentialCache.Add(new System.Uri(url), "Ntlm", new NetworkCredential(username, pwd, domain));
return credentialCache;
}
最佳答案
我在webrequest中使用网络凭据的经验是,request.GetResponse()
不会通过凭据,除非它从服务器接收到未经授权的(质询)响应。如果它确实收到403,它将自动触发包含凭证的第二个请求。如果缺少auth头,请确保您要命中的端点返回401。