Я работаю над проектом .NET .В контроллер этого проекта я вызываю внешний API, задающий аутентификацию, следующим образом:
private NetworkCredential myCreds = new NetworkCredential("MYUSERNAME", "MYPASSWORD", "MYDOMAIN");
private CredentialCache = new CredentialCache();
string jsonRequest = urlBaseProtocolloApi + "/api/MY_ENDPOINT";
credCache.Add(new Uri(jsonRequest), "NTLM", myCreds);
HttpWebRequest spRequest = (HttpWebRequest)HttpWebRequest.Create(jsonRequest);
spRequest.Credentials = credCache;
spRequest.UserAgent = "Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0";
spRequest.Method = "GET";
spRequest.Accept = "application/json;odata=verbose";
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
HttpWebResponse endpointResponse = (HttpWebResponse)spRequest.GetResponse();
Он отлично работает.
Как видите, я использую это NTLM протокол для аутентификации в вызываемом API.
Моя проблема в том, что по причине теста я хочу выполнить этот вызов, используя curl вместо передачи из моего .NETконтроллер.
Я пытался таким образом:
curl -X POST -k -d @invio_a_protocollo.json https://my_machine:13003/API_CONTEXT/api/MY_ENDPOINT --header "Content-Type:application/json
, но, очевидно, поскольку я не передаю учетные данные, я получаю это сообщение об ошибке:
{"Message":"Authorization has been denied for this request."}
Как я могу попытаться установить это NTLM на моем curl запросе?