微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

阅读源权限时如何处理孤立的NTFS权限

如何解决阅读源权限时如何处理孤立的NTFS权限

我关注了该线程C# Copying a Folder to another destination with Security/Permission Settings

中的信息

我设法让我的应用复制具有权限的文件文件夹,但是当它击中任何具有“孤立权限”的文件夹时,它完全消失了。

诸如S-1-5-21-236079之类的权限...

有什么建议吗?

解决方法

这是我的解决方案,在循环中检查“ S-1-5”并跳过了它。

    private void PermissionGet(DirectoryInfo Source,DirectoryInfo Destination)
    {
        string Username;
        DirectorySecurity SourceSecurity = Source.GetAccessControl();

        foreach (FileSystemAccessRule Rules in SourceSecurity.GetAccessRules(true,true,typeof(System.Security.Principal.NTAccount)))
        {
            Username = Rules.IdentityReference.Value;
            if (!Username.Contains("S-1-5"))
            {
                PermissionSet(Username,Rules.FileSystemRights,Rules.AccessControlType,Destination);
            }
        }
    }

    private void PermissionSet(string Username,FileSystemRights Permission,AccessControlType Access,DirectoryInfo Destination)
    {
        try
        {
            DirectorySecurity Security = Destination.GetAccessControl();
            Security.AddAccessRule(new FileSystemAccessRule(Username,Permission,Access));
            Destination.SetAccessControl(Security);
        }
        
        catch (Exception e)
        {
            MessageBox.Show(e.ToString());
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。