Следующий код отлично работает для того, чтобы выдать себя за другого пользователя:
var integrationUserIdentity = LoginIntegrationUser();
WindowsIdentity.RunImpersonated(integrationUserIdentity.AccessToken, () =>
{
// Check the identity.
Console.WriteLine("During impersonation: " + WindowsIdentity.GetCurrent().Name);
});
integrationUserIdentity.Dispose();
Однако я пытаюсь заставить мои тесты NUnit (интеграция) работать как другой пользователь. Я бы предпочел не загромождать каждый из моих тестов вызовом WindowsIdentity.RunImpersonated
в начале и вызовом Dispose
в конце.
Я ищу способ, чтобы в моем методе установки переключить текущего пользователя на другого пользователя (чтобы все мои тесты выполнялись от имени этого пользователя).
Полная версия. NET framework имел WindowsIdentity.Impersonate
метод, который позволял бы вам выдавать себя за себя, пока не был вызван «отменить». Но этот метод не сделал это в. NET Core.
Есть ли способ, в. NET Core, чтобы изменить текущего пользователя для более чем просто делегат / лямбда?
(Поскольку я не вызываю каждый тест NUnit напрямую, я не могу обернуть "вызывающую" функцию в контекст RunImpersonated
пользователя.)