科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件如何利用.NET的DirectorySecurity对象处理目录安全性问题

如何利用.NET的DirectorySecurity对象处理目录安全性问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

处理.NET目录的一个重要问题是安全性问题,本文详细介绍了目录级的安全控制与设置。

作者:builder.com.cn 2007年5月10日

关键字: 安全 目录安全 DotNet

  • 评论
  • 分享微博
  • 分享邮件

处理.NET目录的一个重要问题是安全性问题,也就是说,你可以让需要访问某个目录的用户访问该目录,而限制其他用户访问该目录。本文详细介绍了目录级的安全控制与设置。

访问控制

使用.NET的Directory类,用户可通过DirectorySecurity对象的下列方法来访问目录的访问控制列表(ACL):

  • GetAccessControl:返回一个目录的Windows ACL作为一个DirectorySecurity对象。
  • SetAccessControl:将DirectorySecurity对象的ACl入口赋予指定目录。

为了正确应用这些方法,需要对DirectorySecurity类有深入的理解,因此下面我们对此作深入讲解。

DirectorySecurity

DirectorySecurity类定义了如何对目录访问进行审计。该类是潜在的Windows文件安全系统(System.Security.AccessControl命名空间的一部分)的一个抽象。

在该系统中,每个目录有一个自由决定的ACL来控制目录访问。同时,一个系统ACL决定对哪些访问控制进行审计。使用两个类FileSystemAccessRule 和FileSystemAuditRule来分别处理目录访问和审计。

FileSystemAccessRule类代表一个潜在的访问控制入口的抽象,访问控制入口用来指定用户账号,提供的访问类型(读、写等等)以及是许可或拒绝某个权限。同时,该类还指定了如何将访问规则传递给子对象。FileSystemAuditRule类代表了为某个文件或目录定义审计规则的ACE。

为了通过DirectorySecurity类为某个目录添加一条新规则,需要FileSystemAccessRule 和 FileSystemAuditRule两个类的新实例。我们从访问权限开始,当同DirectorySecurity类一起使用这些类时,需要创建新的对象实例。列表A包含了每个类的语法。

第一个参数指定每个应用该规则的用户、组或标识。第二个参数是FileSystemRights列表,用来指定用户(由第一个参数指定)可以进行的操作,它包含很多可能的取值,包括:CreateDirectories、 CreateFiles、 Delete、 FullControl、 ListDirectory等等。

用于FileSystemAccessRule类的最后一个参数可用来指定用户能否执行参数二的操作。AccessControlType列表包括两个可能取值:允许和拒绝。用于FileSystemAuditRule类的第三个参数可从AuditFlags列表的Failure、None或Success中取值来设定审计级别。FileSystemAuditRule类的构造函数是重载的,这个方法是最基本的方法。

目录访问

Directory类可用来处理目录的ACL入口,为此,按照以下步骤进行处理:

  • 通过Directory类的GetAccessControl方法来初始化一个DirectorySecurity对象。
  • 通过DirectorySecurity对象指定目录访问规则。例如,使用AddAccessRule方法可以添加一个新规则。新规则定义为一个FileSystemAccessRule对象,它包含标识(用户、组等),系统权限和ACL。
  • 调用Directory类的SetAccessControl方法来永久的改变ACL。

列表B中的C#代码对C:盘中每个目录添加一个ACL入口。该入口提供了对特定用户的访问控制(Domain\TechRepublicUser)。同时,删除了另一个访问规则,该规则对另一个用户没有任何所有控制(Domain\Tester)。列表C包含VB.NET实现的相同功能的代码。

审计追踪

应用Directory类还可以指定目录安全审计规则。审计包含了前面例子中的访问规则处理,这两者的区别是审计使用FileSystemAuditRule类而不是使用FileSystemAccessRule 类。列表D中的C# 代码包括了前面的例子,此外还增加和删除了目录ACL中的审计规则。列表E包含了实现同等功能的VB.NET 代码。

责任编辑:德东

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章