如何从.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。

09-28 12:30