2017-10-18 1 views
0

Teamcity에서 C#의 NTLM으로 인증 할 수 없습니다. 브라우저와 우편 배달부에서 작동합니다. 로깅C# to Teamcity NTLM 인증 실패

NTLM 핸드 셰이크를 할 것으로 보인다 켜져 있지만, 다음에 401 오류에 정착 :

The token supplied to the function is invalid 
To login manually go to "/login.html" page  

샘플 코드는 다음과 같습니다. 나는 여기서 무엇이 잘못되었는지 확신하지 못한다. 기본 인증 및 httpAuth를 포함한 수정 된 URI와 작동합니다.

 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"); 
+0

AFAIK, 당신은 도메인 이름을 포함 (또는 도메인, 로컬 컴퓨터 이름을 결여) 예를 들어, 사용자 이름의 일부로해야합니다

이 그것을 고정 추가 '도메인 \ 사용자'. – NightOwl888

+0

@ NightOwl888 NetworkCredential에는 도메인을 3 번째 인수로 사용하는 3 개의 인수 버전이 있습니다.이 인수는 성공하지 않고도 시도했습니다. 나는 그것을 위해 사용자 필드에 추가했지만 동일한 결과를 얻었습니다. –

답변

0

누락 된 요인은 쿠키가 NTLM에서 앞뒤로 왕래하는 동안 클라이언트에 의해 보내지지 않고 있다는 것입니다. Windows 계정을 처리 할 때

req.CookieContainer = new CookieContainer();