在授予权限时,通常有一条隐式的语句也可以赋予其他权限。例如,如果赋予了访问C:\的权限,FileOPerminssion。就有一个也可以访问C:\子目录下面的隐式假设。如下面的代码:
static void Main(string[] args) { CodeAccessPermission pa = new FileIOPermission(FileIOPermissionAccess.AllAccess,@"D:\"); CodeAccessPermission pb = new FileIOPermission(FileIOPermissionAccess.Read, @"D:\tee"); if(pb.IsSubsetOf(pa)) { Console.WriteLine("pb is a subset of permission"); } Console.ReadKey(); }运行结果:
控制文件和文件夹的访问权限。 此类不能被继承。
此权限的文件 IO 访问提供的以下四种类型之间是有区别 FileIOPermissionAccess:
Read︰ 对文件或访问该文件,例如,其长度或上次修改时间有关的信息的内容的读取访问权限。Write︰ 对文件或更改文件,例如其名称的相关信息的访问权限的内容的写入访问。 此外允许删除和覆盖。Append︰ 可以写入到文件末尾。 不是能读取。PathDiscovery︰ 访问权限的路径本身中的信息。 这有助于保护敏感信息在路径中,如用户名称,以及有关路径中显示的目录结构的信息。 此值不会授予对文件或文件夹路径所表示的访问。所有这些权限是独立的这意味着对其中一个权限并不意味着对另一种权限。 例如, Write 权限并不意味着权 Read 或 Append。 如果需要多个权限,它们可以组合使用位或运算,如下面的代码示例中所示。 根据规范的绝对路径; 定义文件的权限始终应使用规范的文件路径进行调用。 FileIOPermission 描述受保护的文件和文件夹上的操作。 File 类帮助提供安全地访问文件和文件夹。 创建该文件的句柄时执行的安全访问权限检查。 通过执行操作可以在创建时检查,安全检查的性能影响降至最低。 打开文件发生一次,而可以读取和写入发生多次。 一旦打开此文件,不能进一步执行检查。 如果该对象传递给不受信任调用方,它可能被误用。 例如,文件句柄应不存储在具有较少权限的代码可以访问它们的公用全局静态对象。 FileIOPermissionAccess 指定可以对文件或文件夹执行的操作。 此外,可以使用按位 OR 成复杂实例组合这些操作。 文件夹的访问权限意味着可以对包含的链接,以及访问所有文件和文件夹及其子文件夹中的所有文件的访问。 例如, Read 到 C:\folder1\ 的访问权限意味着 Read 访问 C:\folder1\file1.txt、 C:\folder1\folder2\、 C:\folder1\folder2\file2.txt,等等。