【问题标题】:.NET Core - directory permissions Linux.NET Core - Linux 目录权限
【发布时间】:2017-05-26 18:22:29
【问题描述】:

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

提前感谢您的支持。

【问题讨论】:

    标签: c# linux unix .net-core directory-permissions


    【解决方案1】:

    如您所愿,请阅读 here WindowsIdentity.* API 只是 Windows 功能,在其他系统上没有替代品(每种方法都会抛出 PNSE)。临时解决方案可以是 project.json 中的 scripts 部分或自我脚本,因为现在是在 Linux 和 OSX 上的干净 .Net 核心中获得此功能的方法

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 2015-05-28
      • 2017-12-21
      • 2012-11-01
      相关资源
      最近更新 更多