Я использую клиентскую библиотеку 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();
Спасибо.