VSTS 身份验证中带有 accesstoken 凭据的 VssClientCredentials

ars*_*nus 3 tfs azure-devops

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

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

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;
Run Code Online (Sandbox Code Playgroud)

小智 5

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

// skip this line in your code: var credentials = new VssClientCredentials(accessTokenCredentials);
Run Code Online (Sandbox Code Playgroud)

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

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;
Run Code Online (Sandbox Code Playgroud)

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