C# 如何从.Net Windows服务使用新的基本身份验证对Visual Studio Team Services进行身份验证?

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类

我正在尝试从.NET上编写的Windows服务访问(以前称为)

我想使用新的基本身份验证,但找不到方法

我找到了很多到这篇博文的链接,但它使用的是TeamExplorer Everywhere Java客户端for TFS

是否有新版本的TFS.NET对象模型支持基本身份验证


顺便说一下,我已经连续使用服务帐户登录。非常有用。

首先,您至少需要在您的计算机上安装。它包括一个更新的
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);
        }
    }
}