我最近一直在努力通过 API 在 TeamCity 中进行身份验证。我可以直接在我的浏览器中访问资源 ( http://usr:pw@teamcity:8111/httpAuth/app/rest/.. 。),但这样做会以编程方式返回 401-Unauthorized。
WebRequest request = WebRequest.Create("http://user:pwd@teamcity:8111/httpAuth/app/rest/projects");
request.Method = WebRequestMethods.Http.Get;
try
{
request.Timeout = Timeout.Infinite;
WebResponse response = request.GetResponse(); //Returns 401:Unauthorized
我可以毫无问题地使用 guestAuth( http://teamcity:8111/guestAuth/app/rest/projects ),因此 WebRequest 本身应该没有任何问题。
有人有想法吗?
最佳答案
尝试添加您的凭据,然后发出请求。它会得到您需要的。
var username = "abc";
var password = "123";
var encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));
request.Headers.Add("Authorization", "Basic " + encoded);
关于c# - TeamCity - 无法通过 API 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31116793/