首页 > 解决方案 > DevOps 中的模拟

问题描述

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

但是,我在冒充另一个用户时遇到了问题,DevOps 总是给我一个错误:

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

尽管我已将此权限分配给 DevOps 中组织设置下的一个收集组中的用户。我什至将此用户添加为项目集合管理员的成员。

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

编辑以添加代码。以下是我正在使用的代码。另外请注意,代码在本地 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();

谢谢。

标签: .netazure-devopstfs-sdk

解决方案


推荐阅读