2

在我的 .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 类型的操作系统)?

预先感谢您的支持。

4

1 回答 1

0

就像您在此处 WindowsIdentity.*阅读的那样, API 只是 Windows 功能,在其他系统上没有替代品(每种方法都会抛出 PNSE)。临时解决方案可以是scripts部分project.json或自编写脚本,因为现在是在 Linux 和 OSX 上的干净 .Net 核心中获取此内容的方法

于 2017-01-12T14:44:22.410 回答