我正在使用TFS / DevOps .Net客户端库(基于soap)与DevOps进行交互 .

但是,我有问题冒充另一个用户,DevOps总是给我一个错误:

'UserX需要以下权限才能执行此操作:代表他人提出请求'

尽管我已将此权限分配给DevOps中组织设置下的某个集合组中的用户 . 我甚至将此用户添加为Project Collections Administrator的成员 .

我需要授予任何其他权限,还是有特定的集合组我需要分配此权限?

编辑以添加代码 . 以下是我正在使用的代码 . 另外请注意,代码在本地TFS上工作正常,我正在使用PAT进行身份验证 . 我们尝试模拟的用户是Azure AD中的用户 . 当我们尝试使用DevOps时它就行不通了 . 代码将在第二次EnsureAuthenticated()调用时失败:

var configurationServer = new TfsConfigurationServer(new Uri("https://xxxx"),
                                                new VssCredentials(new VssBasicCredential(
                    string.Empty,
                     "xxxxxx"
                 )));
configurationServer.EnsureAuthenticated();

var identityService = configurationServer.GetService<IIdentityManagementService>();

// Look up the user that we want to impersonate
TeamFoundationIdentity identity = identityService.ReadIdentity(
        IdentitySearchFactor.AccountName, "xx@xx.xxx", MembershipQuery.None, ReadIdentityOptions.None);

var impersonatedconfigurationServer = new TfsConfigurationServer(new Uri("https://xxxx"),
                                   new VssCredentials(new VssBasicCredential(
        string.Empty,
         "xxxxxx"
    )), identity.Descriptor);

impersonatedconfigurationServer.EnsureAuthenticated();

谢谢 .