2017-10-18 7 views
0

TeamcityでC#からNTLMで認証できません。ブラウザとPostmanで動作します。サンプルコードは以下の通りですC#to Teamcity NTLM認証に失敗する

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

:ログで

はNTLMハンドシェイクを行うように見えることになったが、その後に401エラーに落ち着きます。私はここで何が間違っているのか分からない。 Basic認証と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

私の知る限りをWindowsアカウントを扱うとき、あなたは、例えば、ユーザ名の一部としてドメイン名(またはドメインを欠いている、ローカルコンピュータ名)を含める必要があります'domain \ user'です。 – NightOwl888

+0

@ NightOwl888 NetworkCredentialの3つの議論のバージョンがあります。これは私が成功しなかった3番目の引数です。私はそれをユーザーフィールドに追加しましたが、同じ結果が得られました。 –

答えて

0

これが完成しました。欠落していた要因は、NTLMの前後でクッキーがクライアントによって送信されていないことでした。

、これはそれを修正追加:

req.CookieContainer = new CookieContainer();