我无法使用NTLM从C#中使用Teamcity进行身份验证。它适用于浏览器和Postman。
启用日志后,它似乎进行了NTLM握手,但随后解决了401错误:
The token supplied to the function is invalid
To login manually go to "/login.html" page
示例代码如下。我不确定这里有什么问题。它适用于基本身份验证和修改后的URI,包括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");
答案 0 :(得分:0)
知道了!缺少的因素是客户在NTLM来回期间没有发送cookie。
添加此修复程序:
req.CookieContainer = new CookieContainer();