using system.security.accesscontrol;取得目錄的訪問控制和審核安全(acl)using system.io;
using system.security.principal;
directorysecurity fileacl = directory.getaccesscontrol(filepath);資料夾許可權繼承控制
fileacl.setaccessruleprotection(true, true);//取消許可權繼承,且保留繼承的訪問規則訪問規則訪問控制項建立fileacl.setaccessruleprotection(true, true);//取消許可權繼承,且移除繼承的訪問規則
fileacl.setaccessruleprotection(false, true);//允許許可權繼承,且忽略第二個引數
filesystemaccessrule everyonerule = new filesystemaccessrule("everyone", filesystemrights.fullcontrol, accesscontroltype.allow);filesystemaccessrule everyonerule1 = new filesystemaccessrule("everyone", filesystemrights.modify, accesscontroltype.allow);
//"everyone"使用者賬戶名稱
訪問規則
允許訪問受保護物件,accesscontroltype.deny拒絕訪問受保護物件
sid也就是安全識別符號(security identifiers),是標識使用者、組和計算機帳戶的唯一的號碼。在第一次建立該帳戶時,修改訪問控制列表(acl)將給網路上的每乙個帳戶發布乙個唯一的 sid。windows 2000 中的內部程序將引用帳戶的 sid 而不是帳戶的使用者或組名。
如果建立帳戶,再刪除帳戶,然後使用相同的使用者名稱建立另乙個帳戶,則新帳戶將不具有授權給前乙個帳戶的權力或許可權,
原因是該帳戶具有不同的 sid 號。安全識別符號也被稱為安全 id 或 sid。
bool result = false;遍歷acl中的ace//將指定的授權規則新增到訪問控制列表 (acl)。
fileacl.modifyaccessrule(accesscontrolmodification.add, everyonerule,out result);
//從 acl 移除所含安全性識別符號 (sid) 和訪問掩碼與指定授權規則一樣的授權規則。
fileacl.modifyaccessrule(accesscontrolmodification.remove, everyonerule, out result);
//從 acl 移除所含 sid 與指定授權規則一樣的授權規則。
fileacl.modifyaccessrule(accesscontrolmodification.removeall, everyonerule, out result);
//從 acl 移除與指定的授權規則完全匹配的授權規則。
fileacl.modifyaccessrule(accesscontrolmodification.removespecific, everyonerule, out result);
//從 acl 移除所含 sid 與指定授權規則一樣的授權規則,然後將指定的授權規則新增到 acl。
fileacl.modifyaccessrule(accesscontrolmodification.reset, everyonerule, out result);
//從 acl 移除所有授權規則,然後將指定的授權規則新增到 acl。
fileacl.modifyaccessrule(accesscontrolmodification.set, everyonerule, out result);
//許可權追加
fileacl.addaccessrule(everyonerule);
//許可權刪除
fileacl.removeaccessrule(everyonerule);
//從當前檔案或目錄移除所有匹配的允許或拒絕訪問控制列表 (acl) 許可權。
fileacl.removeaccessruleall(everyonerule);
//從當前檔案或目錄移除指定使用者的所有訪問控制列表 (acl) 許可權。
fileacl.removeaccessrulespecific(everyonerule);
//從當前檔案或目錄移除單個匹配的允許或拒絕訪問控制列表 (acl) 許可權。
authorizationrulecollection rules = fileacl.getaccessrules(true, true, typeof(ntaccount));// authorizationrule rule = rules[0];
foreach (filesystemaccessrule rule in rules)
}
C 資料夾操作
去除字尾 獲取string最後乙個乙個字元 void main 讀取資料夾中所有檔名 include include include 忘了這個cout就無法輸出string型別。include include finddata t,findfirst,findnext,findclose要用 usi...
C 資料夾操作
author ricard.m.tan createtime 2020 4 2 11 52 41 using system.io using system.windows.forms using system.xml namespace chngz.paradise 複製檔案 public stat...
C 資料夾操作
一 資料夾操作 directory類,directoryinfo類.使用using system.io命名空間 一 建立資料夾 方法一 1 private string path f text ceshi 2 private void create click object sender,event...