c#代码设置远程共享从父目录继承权限
本文关键字:继承 权限 继承权 共享 设置 代码 程共享 | 更新日期: 2023-09-27 18:07:18
我在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作为第一个参数发送,那么第二个参数将被忽略。