文件和目录的访问控制(2) 添加访问控制

本文涉及的产品
访问控制,不限时长
简介:

文件和目录的访问控制(2) 添加访问控制

对文件和目录访问控制的操作基本相同,对于同一种操作本书在通常情况下不重复举例,读者可自行实践。

代码清单7-9是一个简单的示例,用来演示对文件添加访问控制。

代码清单 7-9          对文件添加访问控制

using(FileStream file = new FileStream(@"E:\AclTest\acltest.txt", FileMode.Open, FileAccess.ReadWrite))

{

FileSecurity security = file.GetAccessControl();

FileSystemAccessRule rule = new FileSystemAccessRule(

new NTAccount(@"XuanHunComputer\xuanhun"), FileSystemRights.Read,

AccessControlType.Allow);

 

 security.AddAccessRule(rule);

 

file.SetAccessControl(security);
}

现在通过分析代码清单7-9来了解控制添加单个文件访问控制的细节。首先要做的是获取对文件的访问实例,这里使用FileStream,也许使用File或者FileInfo是你更喜欢的选择。通过对调用GetAccessControl方法来检索该文件的安全对象(类型为FileSecurity);除了包含其他内容以外,该对象还包含一组有序的访问规则,它们共同确定了各种用户和组对该文件所具有的权利。在该示例中,将一个新的访问规则添加到FileSecurity对象中,以便向名为xuanhun的用户授予文件的访问权。在更改生效之前,必须将其持久保存在存储器中。最后这个步骤是通过调用SetAccessControl方法完成的。

代码清单7-9说明了如何向现有文件分配访问权,那么如何在创建文件的初始就分配权限呢?这样做有一个重要的安全原因:可确保安全的对象总是用一些默认的安全语义创建的。默认情况下,分层式资源管理器(例如文件系统或注册表)中的对象从其父对象中继承它们的安全设置,文件从它们的父目录中继承它们的安全设置。默认权利取决于所创建对象的类型,而且可能不是您所希望的那样。例如,您很少会有意创建每个人都具有完全访问权限的对象,但这却可能恰好是默认安全设置所指定的权限。不能简单地用默认安全设置创建对象并且在以后修改这些设置,产生此问题的原因是:在已经创建对象之后对其加以保护会打开一个机会窗口(在创建和修改之间),在此期间,该对象可能被劫持。劫持可能导致创建者失去对刚刚所创建对象的控制,这会造成灾难性的后果。代码清单7-10演示了在如何创建文件时配置访问规则。

代码清单 7-10             为新创建文件添加规则

   FileSecurity security = new FileSecurity();

            FileSystemAccessRule rule = new FileSystemAccessRule(

                new NTAccount(@"XuanHunComputer\xuanhun"), FileSystemRights.Read,

                AccessControlType.Allow);

            security.AddAccessRule(rule);

            FileStream file = new FileStream(

                @"M:\temp\sample.txt", FileMode.CreateNew,  FileSystemRights.Read,

                FileShare.None, 4096, FileOptions.None, security);

代码清单7-10与代码清单7-9执行的是相同的操作,但顺序不同,并且无需持久保存更改(因为对象是全新的)。在创建文件之前,先创建一个FileSecurity对象,并且用所需的访问规则填充它。随后,FileSecurity实例被传递给文件的构造函数,该文件从一开始就被正确地加以保护。

 ----------------注:本文部分内容改编自《.NET 安全揭秘》。

 


本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/archive/2012/06/23/2559584.html,如需转载请自行联系原作者

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
运维 监控 网络协议
【运维知识进阶篇】集群架构-Nginx常用模块(目录索引+状态监控+访问控制+访问限制)(下)
【运维知识进阶篇】集群架构-Nginx常用模块(目录索引+状态监控+访问控制+访问限制)(下)
100 0
|
运维 监控 应用服务中间件
【运维知识进阶篇】集群架构-Nginx常用模块(目录索引+状态监控+访问控制+访问限制)(上)
【运维知识进阶篇】集群架构-Nginx常用模块(目录索引+状态监控+访问控制+访问限制)
110 0
|
缓存 安全 测试技术
详细解析工作流Activiti框架中的LDAP组件!实现对工作流目录信息的访问控制和维护
本片文章介绍了工作流Activiti框架在企业中应用的场景,也就是集成LDAP使用,通过将Activiti框架连接企业的LDAP实现对企业用户和群组信息的管理。文章从用法,用例,配置,属性几个方面分别详细说明了Acitivi集成LDAP使用的具体方式。
254 0
详细解析工作流Activiti框架中的LDAP组件!实现对工作流目录信息的访问控制和维护
|
Apache 数据安全/隐私保护
|
数据安全/隐私保护 SEO Apache
.htaccess文件的作用(访问控制)
在线工具: http://www.htaccesseditor.com/sc.shtml   说到.htaccess文件,我想对于wordpress新手或者老手都应该不是很熟悉,也没有多少这方面的概念吧,至少小编是这样的,而最近看到一篇有关介绍的文章,觉得很不错,所以今天打算分享给大家,也给自己一篇扫盲课吧! 首先介绍下.htaccess文件到底是什么,.htaccess是Apache HTTP Server系统级别的配置文件,通常用来实现主机本身以外的一些功能的,比如说重定向、Gzip、以及访问限制等等。
1617 0
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
292 7
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
129 4

热门文章

最新文章