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

提前感谢您的支持。

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

相关内容

  • 没有找到相关文章

最新更新