c# - 使用 WindowsCredentials 连接到 TfsTeamProjectCollection

标签 c# tfs

我想使用用于登录 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>();
}

最佳答案

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

关于c# - 使用 WindowsCredentials 连接到 TfsTeamProjectCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44526798/

相关文章:

c# - 如何在脚本中仅使用游戏对象在 Unity C# 中启用部件/组件

c# - 使用 Web API, Entity Framework 如何知道对象中发生了什么变化?

tfs - 如何快速删除所有构建定义?

powershell - 抑制 powershell 输出消息

git - VSTFS 2015 - merge pull 请求设置 no-ff

c# - 将自定义根 CA 与 HttpClient 结合使用

c# - DirectX - 为 CoreWindow 创建交换链时访问被拒绝