tfs - VssClientCredentials 在 VSTS 身份验证中具有 accesstoken 凭据

标签 tfs azure-devops

我正在从 VSTS 读取用户的许可信息,但它没有使用访问 token 凭据对自己进行身份验证。

如何使用访问 token 进行身份验证?

string accessToken = $"{AccessTokenHere}";
VssOAuthAccessTokenCredential accessTokenCredentials = new VssOAuthAccessTokenCredential(new VssOAuthAccessToken(accessToken));
var credentials = new VssClientCredentials(accessTokenCredentials);

VssConnection connection = new VssConnection(new Uri(this.ServerUri), credentials);
var licensingHttpClient = connection.GetClient<LicensingHttpClient>();
var accountEntitlement = licensingHttpClient.GetAccountEntitlementAsync().Result;
var license = accountEntitlement.License;

最佳答案

我认为,当您拥有来自 oauth2 身份验证的不记名 token 时,您可以跳过以下行:

// skip this line in your code: var credentials = new VssClientCredentials(accessTokenCredentials);

对我来说,这段代码是有效的:

VssOAuthAccessTokenCredential credentials = new VssOAuthAccessTokenCredential(AccessToken);
VssConnection connection = new VssConnection(new Uri("https://dev.azure.com/[your org]"), credentials);
var client = connection.GetClient<ProjectHttpClient>();
var projects = client.GetProjects().Result;

还请确保您在应用程序中为您想要实现的目标注册了正确的范围。

关于tfs - VssClientCredentials 在 VSTS 身份验证中具有 accesstoken 凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50966279/

相关文章:

selenium - 如何将 UI 测试屏幕截图作为附件添加到 TFS 测试报告

tfs - visualstudio.com 可以绑定(bind)到发布管理服务器吗?

tfs - 提高 TFS2013 Pull Request 合并成功率

tfs - 将多个变更集合并为一个后如何挑选

azure - 如何根据定义的环境在Azure管道中运行相同的步骤?

wcf - Team Foundation 服务的 SOAP 警报

silverlight - 在 tfspreview 上构建 silverlight 应用程序

tfs - 如何在 TFS 2012 浏览器中查看所有工作项

api - 从 Visual Studio Online API 中提取燃尽图

azure - 独占锁管道级别 - Azure