Вот метод, о котором идет речь:
Код: Выделить всё
private const string LocalAdministratorsGroupSID = "S-1-5-32-544"; // well-known Administrators group SID
public static bool CheckIdentity(WindowsIdentity identity)
{
var clientWindowsPrincipal = new WindowsPrincipal(identity);
return clientWindowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator) ||
clientWindowsPrincipal.Claims.Any(c => c.Value == LocalAdministratorsGroupSID);
}
Я хочу создать тестового пользователя, который:
- Фактически не имеет прав администратора (возвращает false).
Код: Выделить всё
IsInRole(WindowsBuiltInRole.Administrator)
- Есть утверждение с SID группы «Администраторы» (), делая вторую часть условия (
Код: Выделить всё
"S-1-5-32-544"
) возвращает true.Код: Выделить всё
clientWindowsPrincipal.Claims.Any
Как настроить пользователя или для достижения этой цели манипулировать объектом WindowsIdentity в тестовой среде? Я изучаю, как смоделировать или вручную внедрить такие утверждения, прежде всего в целях тестирования. Любые рекомендации по подходу к этому в контексте .NET будут особенно полезны.
Подробнее здесь: https://stackoverflow.com/questions/783 ... tity-check