.net - 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();
谢谢。
解决方案
推荐阅读
- java - 如何在 Flutter/Java 中显示 Emojis 和 UTF-8 文本
- javascript - 车身高宽为100vh;并且其中的 div 具有 100vh 或 100% 的宽度,但它没有触及边缘?为什么
- sharepoint-online - SharePoint Online CSOM 自定义应用程序身份验证停止工作
- r - 如何找到 R 数据集中特定列的前 50 行的平均值
- google-apps-script - 如何将多个 Slack Block 合并为一个?
- node.js - Apache/Passenger 无法识别站点位于 https 上
- python - 根据另一列python中的值范围创建带有桶的列
- python - 在测量进程时使用多处理进程和 psutil 时 Python 程序挂起
- google-cloud-storage - 为 Google Cloud Storage 导出 config-connector 配置文件的正确 URL 是什么?
- java - 重定向到条带后丢失会话数据