0

Ich versuche, GET/Post-Anfrage mit Autorisierung (NTLM/BASIC) zu machen. Code funktioniert für alle GET-Anforderungen, wird jedoch für jede POST-Anfrage nicht autorisiert.ASP.NET-Autorisierung (NTLM/BASIC) schlägt für PUT aber funktioniert für GET

Mein Code:

NetworkCredential credential = new NetworkCredential(user, password); 
var myCache = new CredentialCache 
{ 
    { uri, auth, credential } // auth = "BASIC" or "NTLM" 
}; 

var handler = new HttpClientHandler 
{ 
    AllowAutoRedirect = true, 
    PreAuthenticate = true, 
    Credentials = myCache 
}; 
HttpClient httpClient = new HttpClient(handler); 
... 
StringContent content = new StringContent(bodyText); 
httpClient.PostAsync(uri, content).Result; // returns 401 
+0

Erlaubt der Server POST-Anfragen? –

+0

@AlekDepler, ja, Server erlaubt Post-Anfragen –

Antwort

0

Was der Code, der auf der PUT-Anfrage ausgeführt wird? Es besteht die Möglichkeit, dass die von Ihnen verwendete Benutzername/Passwort-Kombination nicht über WRITE-Zugriff auf eine Ressource verfügt und Sie daher einen nicht autorisierten Fehler erhalten.

Wenn Sie Zugriff auf den Code haben, der den PUT-Aufruf empfängt, überprüfen Sie, in welche Dateien/Ordner er schreiben möchte. Wenn nicht, wenden Sie sich an die Personen, die diesen Service besitzen, und fragen Sie, warum der Service fehlschlägt.

+0

Ich habe keinen Zugriff auf Code, der PUT-Anfrage empfängt, aber Anmeldeinformationen ist 100% korrekt und hat Zugriffsebene, die benötigt –

+0

Haben Sie Zugriff auf den Server? Wenn es sich um IIS handelt, können Sie mithilfe der Ablaufverfolgung für fehlgeschlagene Anfragen feststellen, um welchen Fehler es sich handelt. Wenn es Apache ist, überprüfen Sie die Fehlerprotokolldatei. – netniV

Verwandte Themen