C#设置与获取目录权限(.net控制ACL)
来源:互联网 发布:淘宝直播卖衣服 编辑:程序博客网 时间:2024/05/21 01:51
// 用c#来设置和读取ntfs分区上的目录权限
using System;using System.Collections;using System.IO;using System.Security.AccessControl;static class Tester{ public static void Main() { try { string filename = @"f:\k"; //目标目录 string account = @"Administrator";//用户名 string userrights = @"RW";//权限字符串,自己定义的 AddDirectorySecurity(filename, account, userrights); Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e); Console.ReadLine(); } } static public void AddDirectorySecurity(string FileName, string Account, string UserRights) { FileSystemRights Rights = new FileSystemRights(); if (UserRights.IndexOf("R") >= 0) { Rights = Rights | FileSystemRights.Read; } if (UserRights.IndexOf("C") >= 0) { Rights = Rights | FileSystemRights.ChangePermissions; } if (UserRights.IndexOf("F") >= 0) { Rights = Rights | FileSystemRights.FullControl; } if (UserRights.IndexOf("W") >= 0) { Rights = Rights | FileSystemRights.Write; } bool ok; DirectoryInfo dInfo = new DirectoryInfo(FileName); DirectorySecurity dSecurity = dInfo.GetAccessControl(); InheritanceFlags iFlags = new InheritanceFlags(); iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; FileSystemAccessRule AccessRule2 = new FileSystemAccessRule(Account, Rights, iFlags, PropagationFlags.None, AccessControlType.Allow); dSecurity.ModifyAccessRule(AccessControlModification.Add, AccessRule2, out ok); dInfo.SetAccessControl(dSecurity); //列出目标目录所具有的权限 DirectorySecurity sec = Directory.GetAccessControl(FileName, AccessControlSections.All); foreach (FileSystemAccessRule rule in sec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount))) { Console.WriteLine("----------------------------------"); Console.WriteLine(rule.IdentityReference.Value); if ((rule.FileSystemRights & FileSystemRights.Read) != 0) Console.WriteLine(rule.FileSystemRights.ToString()); } Console.Read(); }}
对照MSDN,很容易看懂上面的代码。 但是貌似这个程序需要以管理员身份来运行。^_^
其中的Directory.GetAccessControl(FileName, AccessControlSections.All); 第二个参数如果为AccessControlSections.Access ,就可以使得运行在IIS中的Web应用程序获得目录权限了。
- C#设置与获取目录权限(.net控制ACL)
- C#设置与获取目录权限(.net控制ACL)
- C#设置与获取目录权限(.net控制ACL)
- (证实可用)C#设置与获取目录权限(.net控制ACL)
- c#设置目录权限(.net控制alc)
- Linux账号管理与ACL权限设置
- Zookeeper(四)Acl权限控制
- acl权限控制详解
- linux ACL权限控制
- Zookeeper ACL权限控制
- linux ACL权限控制
- Phalcon 权限控制 ACL
- acl访问权限控制
- ACL 权限控制
- ACL权限控制列表
- ZooKeeper ACL权限控制
- apache 设置目录权限控制
- C# 控制NTFS目录权限
- 优秀网站列表
- ckeditor4集成ckfinder2
- 玩转proc 中的信息
- RegOpenKeyA(HKEY_LOCAL_MACHINE, AppPath, &hKey)
- javascript实现限制上传文件的大小
- C#设置与获取目录权限(.net控制ACL)
- shell如何模块化和复用——shell深入学习
- WCF与WEB SERVICE或WEB SERVICE与.NET Remoting的区别是什么(面试必考,必须搞懂)
- 自连接
- 2013年第1季度中国互联网创业&融资分析报告
- excel 中插入文件
- Android模拟器代理设置、ip设置
- Unix NetWork Programming——环境搭建(解决unp.h等源码编译问题)
- java的内存分析之一