所以我試圖修改BUILTIN \ Users組的權限,至少有修改文件系統訪問權限。不幸的是,我嘗試使用下面的代碼生成未更改的ACL。無法修改CommonAppDataPath目錄中的C#中的ACL權限
SecurityIdentifier usersSecurityIdentifier = ntAccount.Translate(typeof(SecurityIdentifier)) as SecurityIdentifier;
DirectorySecurity directorySecurity = Directory.GetAccessControl(source.FullName);
FileSystemAccessRule accessRule
= new FileSystemAccessRule(@"BUILTIN\Users", FileSystemRights.FullControl, AccessControlType.Allow);
directorySecurity.ModifyAccessRule(AccessControlModification.Add,
accessRule,
out modified);
Console.WriteLine(modified);
修改後的報告在所有情況下均爲true,但在您查看文件夾屬性時不會更新這些修訂。
我也嘗試添加訪問規則對於沒有尚未使用類似的代碼目錄中的ACL只是AddAccessRule,而不是修改的SecurityIdentifier。即使新的SecurityIdentifier顯示在目錄的perms列表中,但它們沒有我指定的訪問權限。
我試圖修改在Environment.SpecialFolders.CommonApplicationData專有目錄管理員帳戶的所有者訪問。我也在嘗試以管理員身份修改ACL。
沒有人有任何的想法有什麼錯瓦特/上面的代碼或有可能導致我使用本地原生.NET類設置ACL的正確方法的任何資源?
我有一位朋友在另一臺Vista機器上確認了這種行爲。它似乎與我正在修改CommonAppData路徑中的數據有關。 – 2009-09-18 03:55:15
所以我發現這個相關的線程,並認爲我會發布[這裏] [1]。要點是,目錄權限應該在創建目錄時由管理帳戶執行的安裝期間設置。我認爲這可以通過自定義操作和安裝程序類來完成。當我編寫代碼並確認這其實是真的時,我會在這裏發佈我的解決方案。 [1]:http://www.vistax64.com/vista-security/165672-how-programmatically-modify-users-full-control。html – 2009-09-18 04:07:07