使用Windows凭据进行TFS授权

时间:2016-08-18 23:39:30

标签: windows authentication tfs

我正在尝试连接我的TFS帐户

https://xxx.visualstudio.com/DefaultCollection

如果我尝试通过浏览器,我可以访问它。我的Windows凭据和TFS凭据是相同的。我正在尝试使用我的Windows凭据以编程方式登录到TFS。

我使用的库是: - Microsoft.TeamFoundation.Client(版本14.0.0,Framework版本4.6.0)

我不确定是否还需要做其他事情,或者这还不够?在web.config或app.config或其他任何地方要做的事情? 最令人讨厌的是,在同一个解决方案的旧项目中,一切似乎都是一样的,而且工作正常。

获得例外: -

TF30063:您无权访问https://xxx.visualstudio.com/DefaultCollection

代码: -

  public TfsTeamProjectCollection ConnectionVSO { get; set; }

  public TFSRepository()
    {
        var uri = new Uri("https://xxx.visualstudio.com/DefaultCollection");
        try
        {        
            var credentials = new AadCredential();
            var clientCredentials = new TfsClientCredentials(credentials) { AllowInteractive = false };
            TfsTeamProjectCollection teamProjectCollection = new TfsTeamProjectCollection(uri, clientCredentials);

            if (teamProjectCollection != null)
            {
                teamProjectCollection.EnsureAuthenticated();
            }
            ConnectionVSO = teamProjectCollection;
        }
        catch (Exception ex)
        {
        }
    }

我确信我错过了一些东西。但不确定是什么? :(

2 个答案:

答案 0 :(得分:0)

您正在尝试连接到VSTS,如果您存储了凭据,则您的凭据应存储在Web凭据而非Windows凭据中。

您可以创建VssConnection实例以获取REST服务的HttpClients,或者创建TfsTeamProjectCollection实例以使用SOAP对象模型来验证VSTS。您可以使用以下方法来实现它:

  • REST服务的Azure Active Directory身份验证
  • REST服务的个人访问令牌身份验证
  • Visual Studio登录提示(Microsoft帐户或Azure Active) 支持目录的REST服务
  • REST服务的OAuth身份验证
  • SOAP服务的Azure Active Directory身份验证
  • SOAP服务的基本身份验证
  • Visual Studio登录提示(Microsoft帐户或Azure Active) 支持目录的SOAP服务

详细信息:https://www.visualstudio.com/en-us/docs/integrate/get-started/client-libraries/samples#authenticating-visual-studio-team-services

答案 1 :(得分:0)

根本不是代码问题。一切都很好。这是我的代码存储库的问题。我更改了我的代码在硬盘上的映射路径,并获得了最新的代码,它工作。奇怪但真实:( !!现在很好。