我正在使用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();
谢谢 .