繁体   English   中英

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

[英]How to handle Orphaned NTFS Permissions when reading Source Permissions

我遵循此线程中的信息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());
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM