使用VSTS客户端库查询标识

时间:2016-06-30 19:54:33

标签: .net azure-devops

当我从Microsoft.VisualStudio.Services.Client nuget包中调用IdentityHttpClient上的ReadIdentitiesAsync时:

using (var client = new IdentityHttpClient(baseUrl, credentials))
{
    identities = await client.ReadIdentitiesAsync(IdentitySearchFilter.General, "user@company.com");
}

抛出此异常:

  

API资源位置28010c54-d0c0-4c89-a5b0-1c9e188b9fb7未在https://myaccount.visualstudio.com/上注册

我应该使用另一种吗?

2 个答案:

答案 0 :(得分:1)

用于身份api的基本URL与其他api不同。

对于客户端库中的大多数客户端,请使用https://myaccount.visualstudio.com

对于身份客户端,请使用https://myaccount.vssps.visualstudio.com

答案 1 :(得分:0)

与VSTS一起使用时会出现相同的异常,但代码可以与内部部署的TFS服务器一起正常工作。

作为替代方式,您可以使用.NET client libraries API获取身份信息。

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Server;

namespace NetAPIID
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "https://xxx.visualstudio.com";

            TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(url));
            ttpc.EnsureAuthenticated();

            IGroupSecurityService igss = ttpc.GetService<IGroupSecurityService>();

            Identity id = igss.ReadIdentity(SearchFactor.AccountName, "user@company.com", QueryMembership.None);
        }
    }
}