c# 给文件/文件夹 管理用户权限
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# 给文件/文件夹 管理用户权限相关推荐
- Linux 文件与目录管理+用户管理命令(详解+练习)
1. 创建目录 mkdir NO1. 在当前路径创建一级目录 [root@rehat root]# mkdir test NO2. 在当前路径创建多级目录 [root@rehat root]# mkd ...
- Linux 文件与目录管理+用户管理命令
Linux 文件与目录管理+用户管理命令(详解+练习) 标签: it分类: Linux A linux实用命令详解(新建删除复制文件夹,挂载) + B Linux 文件与目录管理+用户管理命令练习 A ...
- 智慧、智能图书馆管理平台系统+web端业务数据管理平台+Axure通用web端高保真交互业务数据管理平台+铭牌管理+设备监控+系统管理+内容管理+机构列表管理+用户权限管理+专题管理+服务包管理
作品介绍:智慧.智能图书馆管理平台系统+web端业务数据管理平台+Axure通用web端高保真交互业务数据管理平台+铭牌管理+设备监控+系统管理+内容管理+机构列表管理+用户权限管理+专题管理+服务包 ...
- Chmod 提升一个文件夹下所有文件(夹)的权限
还在为没有权限而发愁吗? 那就狠一点,在一个你想要操作的目录上全部给予权限吧. 首先切换root身份 $su - 运行 #chmod -R 777 目录名 样了. 之后,你用 "ls -l ...
- Rails-treasure chest4: 使用图表对资料进行分析chart.js(及其他);管理用户权限的gem 'Pumdit'(6000)...
* 多档案上传 * 图表资料分析 Chartkick gem或者 chart.js * 用户权限控管 gem Pundit (6000✨) * HTML E-mail 寄送 : gem prema ...
- 电商Sass平台-商城运营后台原型-仓储管理-订单管理-店铺运营-采购管理-数据分析-交易分析-留存分析-客户管理-用户运营-围栏管理-商品管理-流量分析-电商erp后台管理-用户权限-销量分析
axure作品内容介绍:电商Sass平台-商城运营后台原型-仓储管理-订单管理-平台运营-采购管理-数据分析-交易分析-留存分析-客户管理-用户运营-围栏管理-商品管理-店铺装修-门店管理-商品档案- ...
- mysql - user/privileges/用户与权限/用户权限/管理用户权限
目录 1.用户权限有哪些 2.用户权限操作语句 3.授权说明与授权原则 1.用户权限有哪些 总共28个权限 mysql数据库中的3个权限表:user .db. host 权限表的存取过程是: 1)先从 ...
- 金蝶kis记账王管理用户权限的方法
为什么80%的码农都做不了架构师?>>> 金蝶KIS记账王系统的权限管理是按照分组权限进行的,系统默认一个"系统管理员组"和一个"缺省组" ...
- linux文件夹分配用户权限,linux权限设置(开放某个文件夹给指定用户)
问题背景: 今天想把自己的数据集开放给同事a,只允许其读,不允许写. 操作: step1: 查看该文件夹属于哪一个用户,哪一个组 ls 文件夹 -l step2: usermod -a -G 指定文件 ...
最新文章
- oracle insert忽略重复数据,Oracle’INSERT ALL’忽略重复项
- DS-1. 数据结构(data structure)
- Python 处理CSV文件
- mysql in 很大 优化_【转】mysql in语句优化
- Android简单实现BroadCastReceiver广播机制
- Python面试题解答——第三部分Python高级
- 仅20行代码,实现文件自动化上传。
- POJ 3461 Oulipo
- DCMM 与其他模型有何不同
- 【毕业季】作为一名大二计科在校生,我有话想说
- 室内定位算法_室内外定位技术的几种常用的技术与算法你都知道吗?
- 2019牛客ACM暑期多校第八场
- 【Android探索】基于OpenCV的微液滴粒径分析APP
- 编译程序和解释程序有什么区别?
- 联想计算机如何进bois,联想电脑怎么进入bios 联想进入bios方法【图文】
- 计算机图形学学习笔记(5.1)几何造型与样条
- 游戏模型师是做什么的?薪资高不高?
- 老熊:RAC数据库频繁hang问题诊断案例
- 风影ASP.NET基础教学 2 web服务器控件
- 分子力场简介 来自wiki百科
热门文章
- java 压缩字节流_java 压缩 字节流 ,C#解压的问题
- 绝地求生大逃杀最新服务器,《绝地求生大逃杀》将建立该国家或地区玩家的专有服务器!...
- 计算机处理器采用多核,电脑的CPU的多核很有用吗?
- android crop 大图,Android-CropView
- 泛型方法的定义和使用_泛型( Generic )
- pinctrl虚拟spi的linux驱动,linux内核pinctrl驱动的理解和总结
- java 启动程序设置classpath/加载jar、类的方式
- java extensions JAR files
- 谷歌浏览器 关闭 提示恢复网页功能_最强浏览器又更新喽!
- PHP堆实现TopK算法实例,top-k 算法浅析