我正在从 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/