使用Windows凭据的TFS授权

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)

我正在尝试连接我的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)
        {
        }
    }

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

提问于
用户回答回答于

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

用户回答回答于

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

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

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

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

扫码关注云+社区

领取腾讯云代金券