gpt4 book ai didi

C# 代码设置远程共享从其父目录继承权限

转载 作者:行者123 更新时间:2023-11-30 15:06:47 31 4
gpt4 key购买 nike

我在 Windows 域中有两台机器,分别称为客户端和服务器。服务器有一个可以从客户端机器访问的共享目录。我想在客户端上运行一个 C# 应用程序,它设置对此共享的权限以继承服务器上共享父目录的权限。我该怎么做?

我尝试了以下几行代码,但我认为它没有正确的效果:

DirectoryInfo shareDirectoryInfo = new DirectoryInfo("\\server\share");
DirectorySecurity directorySecurity = shareDirectoryInfo.GetAccessControl();
directorySecurity.SetAccessRuleProtection(false, false);
InheritanceFlags iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;
FileSystemAccessRule accessRule = new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, iFlags, PropagationFlags.InheritOnly, AccessControlType.Allow);
bool modified;
directorySecurity.ModifyAccessRule(AccessControlModification.Set, accessRule, out modified);
if (modified)
{
Directory.SetAccessControl(name, directorySecurity);
}

我想我不明白为什么我必须为目录创建一个 FileSystemAccessRule - 我怎么能说从父级继承呢?

感谢您的帮助!马丁

最佳答案

您可以使用 SetAccessRuleProtection 将文件夹设置为从父级继承

DirectoryInfo targetFolder = new DirectoryInfo(@"\\server\share");
DirectorySecurity folderSecurity = targetFolder.GetAccessControl(); // Existing security
folderSecurity.SetAccessRuleProtection(false, true); // This sets the folder to inherit
targetFolder.SetAccessControl(folderSecurity);

编辑:msdn 文档解释说,如果将 false 作为第一个参数发送,则第二个参数将被忽略。

关于C# 代码设置远程共享从其父目录继承权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290471/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com