簡體   English   中英

刪除所有目錄權限

[英]Remove All Directory Permissions

在C#(2.0)中如何刪除目錄的所有權限,因此我可以限制訪問權限。 我將向一組有限的用戶添加訪問權限。

免責聲明:我意識到這已經得到了回答和接受,我真的想發布這個作為對已接受答案的評論,但是無法格式化評論迫使我發布這個作為答案(從技術上講,它是)....

我當時也想做同樣的事情,並找到了你的問題。 Stu的回答幫助我提出了這個解決方案。 (請注意,我只對刪除顯式安全性感興趣)。

private static DirectorySecurity RemoveExplicitSecurity(DirectorySecurity directorySecurity)
{
    AuthorizationRuleCollection rules = directorySecurity.GetAccessRules(true, false, typeof(System.Security.Principal.NTAccount));
    foreach (FileSystemAccessRule rule in rules)
        directorySecurity.RemoveAccessRule(rule);
    return directorySecurity;
}

這顯然用作如下:

DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
directorySecurity = RemoveExplicitSecurity(directorySecurity);
Directory.SetAccessControl(path, directorySecurity);

查看System.Security.AccessControl命名空間中的類,尤其是DirectorySecurity.RemoveAccessRule方法。

此外,如果您刪除所有權限,那么之后您將無法添加任何權限:-)

以下是CodeProject關於Windows ACL編程的一組很棒的文章:

Windows Access Control模型

本系列的第3部分顯示了.NET特定的方法。

System.IO.Directory.GetAccessControl()然后編輯返回的FileSecurity對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM