C# 如何从.Net Windows服务使用新的基本身份验证对Visual Studio Team Services进行身份验证?
我正在尝试从.NET上编写的Windows服务访问(以前称为) 我想使用新的基本身份验证,但找不到方法 我找到了很多到这篇博文的链接,但它使用的是TeamExplorer Everywhere Java客户端for TFS 是否有新版本的TFS.NET对象模型支持基本身份验证C# 如何从.Net Windows服务使用新的基本身份验证对Visual Studio Team Services进行身份验证?,c#,.net,tfs,azure-devops,basic-authentication,C#,.net,Tfs,Azure Devops,Basic Authentication,我正在尝试从.NET上编写的Windows服务访问(以前称为) 我想使用新的基本身份验证,但找不到方法 我找到了很多到这篇博文的链接,但它使用的是TeamExplorer Everywhere Java客户端for TFS 是否有新版本的TFS.NET对象模型支持基本身份验证 顺便说一下,我已经连续使用服务帐户登录。非常有用。首先,您至少需要在您的计算机上安装。它包括一个更新的Microsoft.TeamFoundation.Client.dll程序集和BasicAuthCredential类
顺便说一下,我已经连续使用服务帐户登录。非常有用。首先,您至少需要在您的计算机上安装。它包括一个更新的
Microsoft.TeamFoundation.Client.dll
程序集和BasicAuthCredential
类
下面是代码,从
对身份验证进行了一些更新。对于.NET应用程序,我们现在建议使用。另一种选择是使用Azure Active Directory库(ADAL)。有关更多信息和示例,请查看。注意,这需要一个
https:
连接。我很难让它正常工作-显然,当您使用Microsoft帐户凭据时,提供的值将无法按预期工作。为了根据VSO 2015进行身份验证,我必须启用“备用凭据”,以便将用户名更改为非电子邮件地址格式。在那之后,这个代码运行得很好。同意沃基里斯的说法。这不适用于VS2015,现在需要先设置备用凭据,然后才能实际运行它。这是一种旧线程,但如果通过SSL,请尝试使用SimpleWebTokenCredential,而不是NetworkCredential和BasicAuthCredential。
using System;
using System.Net;
using Microsoft.TeamFoundation.Client;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
NetworkCredential netCred = new NetworkCredential(
"yourbasicauthusername@live.com",
"yourbasicauthpassword");
BasicAuthCredential basicCred = new BasicAuthCredential(netCred);
TfsClientCredentials tfsCred = new TfsClientCredentials(basicCred);
tfsCred.AllowInteractive = false;
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(
new Uri("https://YourAccountName.visualstudio.com/DefaultCollection"),
tfsCred);
tpc.Authenticate();
Console.WriteLine(tpc.InstanceId);
}
}
}