C# 设置文件夹的访问权限

/// <summary>
        /// 设置文件夹的ACL
        /// </summary>
        /// <param name="folderPath">文件夹路径</param>
        /// <param name="userName">用户</param>
        /// <param name="rights">权限</param>
        /// <param name="allowOrDeny">拒绝访问</param>
        /// <returns></returns>
        public static bool SetFolderACL(
            string folderPath,
            string userName,
            FileSystemRights rights,
            AccessControlType allowOrDeny)
        {
            //设定文件ACL继承
            InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;

            return SetFolderACL(folderPath, userName, rights, allowOrDeny, inherits, PropagationFlags.None, AccessControlModification.Add);

        }

        /// <summary>
        /// 设置文件夹的ACL
        /// </summary>
        /// <param name="folderPath">文件夹路径</param>
        /// <param name="userName">用户</param>
        /// <param name="rights">权限</param>
        /// <param name="allowOrDeny">拒绝访问</param>
        /// <param name="inherits">ACL继承</param>
        /// <param name="propagateToChildren">应用于子文件夹及子文件</param>
        /// <param name="addResetOrRemove">修改类型</param>
        /// <returns></returns>
        public static bool SetFolderACL(
            string folderPath,
            string userName,
            FileSystemRights rights,
            AccessControlType allowOrDeny,
            InheritanceFlags inherits,
            PropagationFlags propagateToChildren,
            AccessControlModification addResetOrRemove)
        {
            bool result;
            //获取目录信息
            var folder = new DirectoryInfo(folderPath);
            //获取当前文件夹ACL
            var dSecurity = folder.GetAccessControl(AccessControlSections.All);
            //设置新的ACL规则
            var accRule = new FileSystemAccessRule(userName, rights, inherits, propagateToChildren, allowOrDeny);
            //修改文件夹ACL
            dSecurity.ModifyAccessRule(addResetOrRemove, accRule, out result);
            //应用新的ACL规则到文件夹
            folder.SetAccessControl(dSecurity);
            //返回结果
            return result;

        }

下面这样调用

        var folderPath = System.AppDomain.CurrentDomain.BaseDirectory;
        var userName = "Users";
        SetFolderACL(folderPath, userName, FileSystemRights.FullControl, AccessControlType.Allow);
时间: 2024-10-10 12:52:18

C# 设置文件夹的访问权限的相关文章

asp.net项目中通过Web.config配置文件及文件夹的访问权限!

描述:在开发中我们通常会碰到这样的问题,例如:在项目的根目录下面有一个文件或者文件夹需要用户登陆后才能访问.如果用户在没有登录的情况下访问该文件或者该文件夹下面的文件时,直接拦截重定向到对应的登陆页面. 例一: 我想让用户在访问我的程序的Admin文件夹下的页面时需要登录,而在访问其他页面时则不需要,也就是说Admin文件夹下的文件拒绝匿名访问. 下面是配置根目录下的web.config文件中关于授权验证的配置. [xhtml] view plaincopy <system.web> <

linux系统常用命令 -设置文件夹读写权限

设置文件夹的读写权限: sudo chmod -R 777 /data 权限码描述 sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)sudo chmod 666 ××× (每个人都有读和写的权限)sudo chmod 777 ××× (每个人都有读和写以及执行的权限) -R表示包含设置所有子目录

文件夹和用户权限

添加新用户 useradd   用户名 设置密码 passwd 用户名 设置组 usermod -g 组名 用户名 删除用户名 userdel 用户名 添加组 groupadd 组名 删除组 groupdel 组名 查询组分类 cat /etc/group 查看本用户属于什么组 groups 修改文件权限 chmod 777 文件名 命令: chmod 777 scan_record.js 格式: chmod 权限数字 文件名 r 读权限read  4 w 写权限write 2 x 操作权限ex

c# 给文件/文件夹 管理用户权限

public class PermissionManager { /// <summary> /// 为文件添加users,everyone用户组的完全控制权限 /// </summary> /// <param name="filePath"></param> public static void AddSecurityControll2File(string filePath) { //获取文件信息 FileInfo fileInfo

virtualbox共享文件夹无访问权限问题解决方法

早就困扰了,这次新装虚拟机又碰到了,记录下来. 这篇文章主要介绍了virtualbox共享文件夹无访问权限问题解决方法,造成这个问题的原因是不跟virtualbox在同一个用户组,所以加入同个组即可解决这个问题,需要的朋友可以参考下virtualbox的共享文件夹一般都挂载在/media下面,用ll查看会发现文件夹的所有者是root,所有组是vboxsf,所以文件管理去无法访问是正常的,解决方法是把你自己加入到vboxsf组里面. 复制代码代码如下:sudo usermod -a -G vbox

linux中如何修改文件夹的用户权限 chown命令

linux中,可以使用chown命令来修改文件夹的用户权限. 1.  以普通用户 A 登录linux,利用su -切换到root用户 2. 在root用户下,可以看到文件夹内容 3. 但通过文件系统,却无法打开 git 文件夹 提示无法显示远程文件夹(应该是权限不够) 这是因为,以普通用户 A 在命令行内切换到root用户后,文件系统的权限还是普通用户的权限,此时就需要修改文件夹的用户权限. 4.切换到文件夹所在的目录,使用chown命令,即可修改权限.(如果文件夹内还包含文件夹,那可以对cho

DFS文件夹无法访问

最近DFS的文件服务器出现了部分文件和文件夹无法访问的情况.客户端直接访问DFS成员的共享文件夹时有是会出现Element not found的错误.有时打开文件的时候会出现文件不存在,或者你没有权限的错误.这些问题随机发生.没有什么规律可循. 初步定位到是由于DFS的name space无法将客户端的请求引入到正确的文件服务器上,但是2台文件服务器早已完成数据同步,数据是相同的.客户端也没有采用DFS的入口访问. 采用命令检查DFS的完整性,无法通过.出现错误 dfsdiag /testdfs

文件与文件夹的默认权限与隐藏权限

除了基本r, w, x权限外,在Linux的Ext2/Ext3文件系统下,我们还能够配置其它的系统隐藏属性, 这部份可使用 chattr来配置,而以 lsattr 来查看. 文件默认权限:umask umask 就是指定眼下使用者在创建文件或文件夹时候的权限默认值. # umask 0022 <==与一般权限有关的是后面三个数字! # umask -S u=rwx,g=rx,o=rx 查阅的方式有两种.一种能够直接输入 umask ,就能够看到数字型态的权限配置分数,一种则是增加 -S (Sym

Unix/Linux文件类型及访问权限

在Linux系统中,有7种文件类型. 普通文件 (regular file) 目录文件 (directory) 链接文件 (symbolic link) 管道文件 (FIFO) 套接字文件 (socket) 字符设备文件 (character device) 块设备文件    (block device) 在Solaris上,还有一种文件类型, 叫做door文件. 而一个文件的Unix访问权限,包括12位,通常用4个8进制位表示, 标志 八进制值 含义 S_ISUID 04000 set use