У меня есть приложение winforms, в котором мне нужен доступ к защищенному каталогу.Я использую олицетворение и создаю WindowsIdentity для доступа к папке.
Моя проблема - написание модульных тестов для проверки безопасности каталога;Я хотел бы написать код, который создает каталог, защищенный только для ОДНОГО пользователя, который не является текущим пользователем, использующим UT (иначе тест будет бесполезным).
Я знаю, как добавитьразрешения для определенного пользователя, но как я могу отказать остальным, включая администраторов?(в случае, если пользователь, выполняющий UT, является администратором) (это будет мудрым решением?)
DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
directorySecurity.AddAccessRule(new FileSystemAccessRule("Domain\SecuredUser",
FileSystemRights.FullControl,
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.InheritOnly,
AccessControlType.Allow));
directorySecurity.RemoveAccessRule(new FileSystemAccessRule("??",
FileSystemRights.FullControl,
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.InheritOnly,
AccessControlType.Deny));
directoryInfo.SetAccessControl(directorySecurity);
Это не работает.Я не знаю, кого я должен отрицать.Домен \ Администраторы, Домен \ Администраторы, я ... Никому не отказывают, и когда я проверяю безопасность папки - SecuredUser имеет доступ к папке, но разрешения не проверяются, даже если я указал FullControl.
В основном я хочу закодировать это:
<authorization>
<allow users ="Domain\User" />
<deny users="*" />
</authorization>
Я думал об олицетворении UT-запуска со слабым пользователем без прав, но это привело бы к:папку, и я не уверен, что это правильный дизайн.
Помощь будет принята с благодарностью, спасибо.