.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

Другие вопросы по тегам