[英]C# code to set a remote share to inherit permissions from its parent directory
我在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作為第一個參數發送,則忽略第二個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.