我有个习惯,闲下来的时候,喜欢点开对象浏览器,翻翻名字空间,翻翻类,以此为消遣.
看看类,看看方法,看看注释,经常有些新发现.遇到对象浏览器看不明白的,就打开dll来看反编译,时间长了,这个习惯带来的好处是巨大的.
今天又翻看底层的时候发现了一个陌生的名字空间 System.Security.AccessControl , 翻了一下SDK,知道原来是Net 2.0 新加的.
于是来了兴趣,看看是些什么.从名字看来,都叫AccessControl了,估计是跟NTFS文件系统中的访问控制挂起来的.
翻看了一下提供的类跟方法,肯定了我的估计.
对名字空间的简单浏览,发现大量的枚举,而其他一些类,基本上是围绕着几个核心的###Security类来展开.
其中最值得注意的是RegistrySecurity类和FileSystemSecurity类. 比如FileSecurity类和DirectorySecurity类其实只是FileSystemSecurity类的一个封装,(主要是对构造函数的封装,并没有提供任何额外的方法和属性)使用无参构造函数的时候,其实这3个类几乎可以说是相同的.
一直以来,总觉得对NTFS的访问控制表的操作API不足,偏又非常需要,不过这次微软没让人失望,这次2.0提供了非常友好和丰富的操作了^_^. 看了些方法,基本上区别不太大,就试了FileSecurity类,写了个小工程,发现在System.IO名字空间内的File类中也加入了对应的方法.的确是比较方便了^_^ .
只要一句便获得对访问控制表的访问能力:
FileSecurity FS = File.GetAccessControl("文件完整路径");
然后就可以对指定的用户和组,添加与修改权限.非常方便.