Ich kann mit Teamcity von C# mit NTLM nicht authentifizieren. Es funktioniert im Browser und mit Postman.C# zu Teamcity NTLM Authentifizierung fehlgeschlagen
Mit Protokollierung aktiviert es scheint, die NTLM-Handshake zu tun, sondern setzt sich dann auf einem 401-Fehler mit:
The token supplied to the function is invalid
To login manually go to "/login.html" page
Beispielcode ist unten. Ich bin mir nicht sicher, was hier falsch ist. Es funktioniert mit der Standardauthentifizierung und einer modifizierten URI einschließlich httpAuth.
string uri = "http://teamcityserver/ntlmAuth/action.html?add2Queue=SomeBuild";
CredentialCache cc = new CredentialCache();
cc.Add(new Uri(uri), "NTLM", new NetworkCredential("user", "password")); // Have also tried default credentials
var req = HttpWebRequest.Create(uri);
req.Method = "POST";
req.Credentials = cc;
req.Headers.Add("Origin: http://teamcity");
AFAIK, wenn sie mit Windows-Konten zu tun, müssen Sie den Domänennamen (oder eine Domäne fehlt, der lokale Rechnername) als Teil des Benutzernamens, z.B. 'Domäne \ Benutzer'. – NightOwl888
@ NightOwl888 Es gibt eine 3-Argument-Version von NetworkCredential mit der Domäne als das 3. Argument, das ich auch ohne Erfolg versucht habe. Ich habe es nur für den Fall in das Benutzerfeld hinzugefügt, aber das gleiche Ergebnis erhalten. –