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

Tfs VSTS身份验证中具有accesstoken凭据的VssClientCredentials,tfs,azure-devops,Tfs,Azure Devops,我正在从VSTS读取用户的授权信息,但它没有使用访问令牌凭据对自己进行身份验证 string accessToken = "{AccessTokenHere}"; VssOAuthAccessTokenCredential accessTokenCredentials = new VssOAuthAccessTokenCredential(new VssOAuthAccessToken(accessToken)); var cred

我正在从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;
请尝试以下代码:

        String collectionUri = "https://{account}.visualstudio.com";
        VssBasicCredential creds = new VssBasicCredential("", personalaccesstoken);
        VssConnection connection = new VssConnection(new Uri(collectionUri), creds);
        var licensingHttpClient = connection.GetClient<LicensingHttpClient>();
        var accountEntitlement = licensingHttpClient.GetAccountEntitlementAsync().Result;
        var license = accountEntitlement.License;
关于个人访问令牌,您可以参考以下链接:

请尝试以下代码:

        String collectionUri = "https://{account}.visualstudio.com";
        VssBasicCredential creds = new VssBasicCredential("", personalaccesstoken);
        VssConnection connection = new VssConnection(new Uri(collectionUri), creds);
        var licensingHttpClient = connection.GetClient<LicensingHttpClient>();
        var accountEntitlement = licensingHttpClient.GetAccountEntitlementAsync().Result;
        var license = accountEntitlement.License;
关于个人访问令牌,您可以参考以下链接:


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

// 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;

另外,请确保您在应用程序中注册了正确的作用域,以实现您想要实现的目标。

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

// 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;

另外,请确保您在应用程序中注册了正确的作用域,以实现您想要实现的目标。

这就是我使用个人访问令牌的方式

VssBasicToken token = new VssBasicToken(new NetworkCredential("", "string-token"));

VssCredentials credentials = new VssBasicCredential(token);

VssConnection connection = new VssConnection(connectionUri, credentials);

这就是我使用个人访问令牌的方式

VssBasicToken token = new VssBasicToken(new NetworkCredential("", "string-token"));

VssCredentials credentials = new VssBasicCredential(token);

VssConnection connection = new VssConnection(connectionUri, credentials);

您想使用PAT还是OAuth令牌?您遇到了什么错误?我没有PAT,我正在通过VSS客户端SDK生成令牌。使用此sdk方法:VSS.getAccessToken是否要使用PAT或OAuth令牌?您遇到了什么错误?我没有PAT,我正在通过VSS客户端SDK生成令牌。使用此sdk方法:VSS.GetAccessToken我收到以下错误代码:TF400813:用户“5187a2fa-e019-4228-93b3-f0b93d7e693f”无权访问此资源。我没有PAT我正在通过VSS客户端sdk生成令牌。使用此sdk方法:VSS.GetAccessToken我收到以下错误代码:TF400813:用户“5187a2fa-e019-4228-93b3-f0b93d7e693f”无权访问此资源。我没有PAT我正在通过VSS客户端sdk生成令牌。使用sdk的此方法:VSS.getAccessToken