.Net - 在文件名中使用带掩码的FileIOPermission

时间:2010-03-31 05:39:36

标签: .net security file-permissions mask

我想在文件名中使用掩码对文件集应用FileIOPermission,例如。在文件夹C:\ TMP:

中的所有txt文件上
[type: FileIOPermission(SecurityAction.PermitOnly, Read = @"C:\TMP\*.txt")]
class SomeClass
{
    static void testPermissions()
    {
        Console.WriteLine("allowed action");
        File.OpenRead(@"C:\TMP\1.txt"); // <--- here goes exception
        Console.WriteLine("denied action");
        try
        {
            File.Create(@"C:\TMP\2.txt");
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
        finally
        {
            Console.ReadKey();
        }
    }
}

抛出ArgumentException“路径中的非法字符”。

有什么问题?无论如何都可以实现吗?

1 个答案:

答案 0 :(得分:2)

检查FileIOPermission Constructor的MSDN文档,非常具体的是,对于许多条件,将抛出ArgumentException,包括“path参数未指定文件或目录的绝对路径”

不幸的是,从字面上解释这意味着您不能将通配符与FileIOPermission一起使用。

如果没有实现自己的权限类,那么你可以做的最好就是改为引用C:\ TMP目录。