.NET Core - каталог разрешений Linux
В моем модульном тестовом проекте для.NET Core я пытаюсь создать папку, а затем ограничить права доступа.
До сих пор я реализовал версию этого кода для Windows:
DirectoryInfo dirInfo = Directory.CreateDirectory(DriveManager.LogicalDrive + ":\\testDir");
DirectorySecurity dirSecurity = new DirectorySecurity(dirInfo.FullName, AccessControlSections.All);
var securityId = System.Security.Principal.WindowsIdentity.GetCurrent().User;
FileSystemAccessRule rule = new FileSystemAccessRule(securityId, FileSystemRights.ListDirectory, AccessControlType.Deny);
dirSecurity.AddAccessRule(rule);
dirInfo.SetAccessControl(dirSecurity);
очевидно WindowsIdentity.GetCurrent().User
не будет работать в ОС Unix. Я не уверен, могут ли другие функции быть несовместимыми.
Не могли бы вы предложить универсальное решение (для Windows и ОС типа Unix)?
Заранее спасибо за вашу поддержку.
1 ответ
Как вы заботитесь читать здесь WindowsIdentity.*
API - это только Windows Feature без замены в других системах (каждый метод выдает PNSE). Временное решение может быть scripts
раздел в project.json
или сам скриптинг, потому что на данный момент это способ получить это в чистом ядре.Net на Linux и OSX