使用WindowsCredentials连接到TfsTeamProjectCollection

问题描述:

我想连接到TfsProjectCollection使用我用于登录到Windows相同的凭据。这甚至有可能吗?使用WindowsCredentials连接到TfsTeamProjectCollection

我与有这个代码替代凭据现在连接:

NetworkCredential credential = new NetworkCredential(this._username, this._password); 
     VssBasicCredential basicCred = new VssBasicCredential(credential); 
     try 
     { 
      _tfsDataConnection = new TfsTeamProjectCollection(new Uri(this._tfsLink), basicCred); 

      // VssData Part 

      Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); 
      var url = new Uri(_tfsLink); 

      VssCredentials vsc = new VssCredentials(new Microsoft.VisualStudio.Services.Common.WindowsCredential(
       new NetworkCredential(this._username, this._password))); 
      VssConnection connection = new VssConnection(url, vsc); 

      _vssDataConnection = connection.GetClient<BuildHttpClient>(); 
     } 

我将需要得到建立并从该服务器项目。

这是我试过的,但我得到一个错误,就像我没有被授权。

_tfsDataConnection = new TfsTeamProjectCollection(new Uri(this._tfsLink)); 
     try 
     { 
      VssCredentials vsc = new VssCredentials(new Microsoft.VisualStudio.Services.Common.WindowsCredential(CredentialCache.DefaultNetworkCredentials)); 
      VssConnection connection = new VssConnection(new Uri(_tfsLink), vsc); 
      _vssDataConnection = connection.GetClient<BuildHttpClient>(); 
     } 

不要传递任何显式凭证:经典客户端SDK将使用当前用户。 _tfsDataConnection = new TfsTeamProjectCollection(new Uri(this._tfsLink)); _tfsDataConnection.Authenticate();

REST SDK是类似的,你应该使用默认的构造函数。 VssConnection connection = new VssConnection(new Uri(_tfsLink), new VssCredentials()); _vssDataConnection = connection.GetClient<BuildHttpClient>();

+0

我仍然收到未经授权的错误;/ –

+0

扩展了答案 –