6

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

我现在正在使用具有此代码的替代凭据进行连接:

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>();
}
4

1 回答 1

5

不要传递任何显式凭据:经典客户端 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>();

于 2017-06-13T16:39:21.980 回答