public class PermissionManager{/// <summary>/// 为文件添加users,everyone用户组的完全控制权限/// </summary>/// <param name="filePath"></param>public static void AddSecurityControll2File(string filePath){//获取文件信息FileInfo fileInfo = new FileInfo(filePath);//获得该文件的访问权限System.Security.AccessControl.FileSecurity fileSecurity = fileInfo.GetAccessControl();//添加ereryone用户组的访问权限规则 完全控制权限fileSecurity.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));//添加Users用户组的访问权限规则 完全控制权限fileSecurity.AddAccessRule(new FileSystemAccessRule("Users", FileSystemRights.FullControl, AccessControlType.Allow));//设置访问权限
            fileInfo.SetAccessControl(fileSecurity);}/// <summary>///为文件夹添加users,everyone用户组的完全控制权限/// </summary>/// <param name="dirPath"></param>public static void AddSecurityControll2Folder(string dirPath){//获取文件夹信息DirectoryInfo dir = new DirectoryInfo(dirPath);//获得该文件夹的所有访问权限System.Security.AccessControl.DirectorySecurity dirSecurity = dir.GetAccessControl(AccessControlSections.All);//设定文件ACL继承InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;//添加ereryone用户组的访问权限规则 完全控制权限FileSystemAccessRule everyoneFileSystemAccessRule = new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow);//添加Users用户组的访问权限规则 完全控制权限FileSystemAccessRule usersFileSystemAccessRule = new FileSystemAccessRule("Users", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow);bool isModified = false;dirSecurity.ModifyAccessRule(AccessControlModification.Add, everyoneFileSystemAccessRule, out isModified);dirSecurity.ModifyAccessRule(AccessControlModification.Add, usersFileSystemAccessRule, out isModified);//设置访问权限
            dir.SetAccessControl(dirSecurity);}/// <summary>/// 为文件夹移除某个用户的权限/// </summary>/// <param name="dirName"></param>/// <param name="username"></param>static void removePermissions(string dirName, string username){string user = System.Environment.UserDomainName + "\\" + username;DirectoryInfo dirinfo = new DirectoryInfo(dirName);DirectorySecurity dsec = dirinfo.GetAccessControl(AccessControlSections.All);AuthorizationRuleCollection rules = dsec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount));foreach (AccessRule rule in rules){if (rule.IdentityReference.Value == user){bool value;dsec.PurgeAccessRules(rule.IdentityReference);dsec.ModifyAccessRule(AccessControlModification.RemoveAll, rule, out value);}}}/// <summary>/// 项目中用,文件夹只保留everyone权限,其中允许用户读,但不允许写/// by the way,代码结果是给文件夹一个特殊权限,点进去高级看,会发现这个特殊权限的子项和写入权限的子项是一样的/// </summary>/// <param name="dirName"></param>public static void OnlyKeepEveryonePermissionsWithWriteNotAllowed(string dirName){DirectoryInfo dirinfo = new DirectoryInfo(dirName);DirectorySecurity objSecObj = dirinfo.GetAccessControl();AuthorizationRuleCollection acl = objSecObj.GetAccessRules(true, true,typeof(System.Security.Principal.NTAccount));objSecObj.SetAccessRuleProtection(true, false); //to remove inherited permissionsforeach (FileSystemAccessRule ace in acl) //to remove any other permission
            {objSecObj.PurgeAccessRules(ace.IdentityReference);  //same as use objSecObj.RemoveAccessRuleSpecific(ace);
            }InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;FileSystemAccessRule everyoneFileSystemAccessRule = new FileSystemAccessRule("Everyone", FileSystemRights.ReadAndExecute | FileSystemRights.ListDirectory | FileSystemRights.Read, inherits, PropagationFlags.None, AccessControlType.Allow);FileSystemAccessRule everyoneFileSystemAccessRule2 = new FileSystemAccessRule("Everyone", FileSystemRights.Write, AccessControlType.Deny);bool isModified = false;objSecObj.ModifyAccessRule(AccessControlModification.Add, everyoneFileSystemAccessRule2, out isModified);objSecObj.ModifyAccessRule(AccessControlModification.Add, everyoneFileSystemAccessRule, out isModified);dirinfo.SetAccessControl(objSecObj);}}

写入:

代码生成的特殊权限

其实权限是一样的

转载于:https://www.cnblogs.com/swobble/p/11198765.html

c# 给文件/文件夹 管理用户权限相关推荐

  1. Linux 文件与目录管理+用户管理命令(详解+练习)

    1. 创建目录 mkdir NO1. 在当前路径创建一级目录 [root@rehat root]# mkdir test NO2. 在当前路径创建多级目录 [root@rehat root]# mkd ...

  2. Linux 文件与目录管理+用户管理命令

    Linux 文件与目录管理+用户管理命令(详解+练习) 标签: it分类: Linux A linux实用命令详解(新建删除复制文件夹,挂载) + B Linux 文件与目录管理+用户管理命令练习 A ...

  3. 智慧、智能图书馆管理平台系统+web端业务数据管理平台+Axure通用web端高保真交互业务数据管理平台+铭牌管理+设备监控+系统管理+内容管理+机构列表管理+用户权限管理+专题管理+服务包管理

    作品介绍:智慧.智能图书馆管理平台系统+web端业务数据管理平台+Axure通用web端高保真交互业务数据管理平台+铭牌管理+设备监控+系统管理+内容管理+机构列表管理+用户权限管理+专题管理+服务包 ...

  4. Chmod 提升一个文件夹下所有文件(夹)的权限

    还在为没有权限而发愁吗? 那就狠一点,在一个你想要操作的目录上全部给予权限吧. 首先切换root身份 $su - 运行 #chmod -R 777 目录名 样了. 之后,你用 "ls -l ...

  5. Rails-treasure chest4: 使用图表对资料进行分析chart.js(及其他);管理用户权限的gem 'Pumdit'(6000)...

    * 多档案上传 * 图表资料分析  Chartkick gem或者 chart.js * 用户权限控管  gem Pundit (6000✨) * HTML E-mail 寄送 : gem prema ...

  6. 电商Sass平台-商城运营后台原型-仓储管理-订单管理-店铺运营-采购管理-数据分析-交易分析-留存分析-客户管理-用户运营-围栏管理-商品管理-流量分析-电商erp后台管理-用户权限-销量分析

    axure作品内容介绍:电商Sass平台-商城运营后台原型-仓储管理-订单管理-平台运营-采购管理-数据分析-交易分析-留存分析-客户管理-用户运营-围栏管理-商品管理-店铺装修-门店管理-商品档案- ...

  7. mysql - user/privileges/用户与权限/用户权限/管理用户权限

    目录 1.用户权限有哪些 2.用户权限操作语句 3.授权说明与授权原则 1.用户权限有哪些 总共28个权限 mysql数据库中的3个权限表:user .db. host 权限表的存取过程是: 1)先从 ...

  8. 金蝶kis记账王管理用户权限的方法

    为什么80%的码农都做不了架构师?>>>    金蝶KIS记账王系统的权限管理是按照分组权限进行的,系统默认一个"系统管理员组"和一个"缺省组" ...

  9. linux文件夹分配用户权限,linux权限设置(开放某个文件夹给指定用户)

    问题背景: 今天想把自己的数据集开放给同事a,只允许其读,不允许写. 操作: step1: 查看该文件夹属于哪一个用户,哪一个组 ls 文件夹 -l step2: usermod -a -G 指定文件 ...

最新文章

  1. oracle insert忽略重复数据,Oracle’INSERT ALL’忽略重复项
  2. DS-1. 数据结构(data structure)
  3. Python 处理CSV文件
  4. mysql in 很大 优化_【转】mysql in语句优化
  5. Android简单实现BroadCastReceiver广播机制
  6. Python面试题解答——第三部分Python高级
  7. 仅20行代码,实现文件自动化上传。
  8. POJ 3461 Oulipo
  9. DCMM 与其他模型有何不同
  10. 【毕业季】作为一名大二计科在校生,我有话想说
  11. 室内定位算法_室内外定位技术的几种常用的技术与算法你都知道吗?
  12. 2019牛客ACM暑期多校第八场
  13. 【Android探索】基于OpenCV的微液滴粒径分析APP
  14. 编译程序和解释程序有什么区别?
  15. 联想计算机如何进bois,联想电脑怎么进入bios 联想进入bios方法【图文】
  16. 计算机图形学学习笔记(5.1)几何造型与样条
  17. 游戏模型师是做什么的?薪资高不高?
  18. 老熊:RAC数据库频繁hang问题诊断案例
  19. 风影ASP.NET基础教学 2 web服务器控件
  20. 分子力场简介 来自wiki百科

热门文章

  1. java 压缩字节流_java 压缩 字节流 ,C#解压的问题
  2. 绝地求生大逃杀最新服务器,《绝地求生大逃杀》将建立该国家或地区玩家的专有服务器!...
  3. 计算机处理器采用多核,电脑的CPU的多核很有用吗?
  4. android crop 大图,Android-CropView
  5. 泛型方法的定义和使用_泛型( Generic )
  6. pinctrl虚拟spi的linux驱动,linux内核pinctrl驱动的理解和总结
  7. java 启动程序设置classpath/加载jar、类的方式
  8. java extensions JAR files
  9. 谷歌浏览器 关闭 提示恢复网页功能_最强浏览器又更新喽!
  10. PHP堆实现TopK算法实例,top-k 算法浅析