使用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>();
我仍然收到未经授权的错误;/ –
扩展了答案 –