try
            {
                FileIOPermission fileioperm = new FileIOPermission(FileIOPermissionAccess.Read, @"c:\");
                fileioperm.Demand();
                Console.WriteLine("要求权限成功");
            }
            catch
            {
                Console.WriteLine("没有权限");
            }第一个问题:关于C#高级编程这本书安全性章节里面权限中的要求权限我不太懂,上面的代码的意思是不是如果有读取C盘的权限就输出要求权限成功,否则就抛出异常,输出没有权限?我请求了一个程序集的权限
[assembly:FileIOPermission(SecurityAction.RequestRefuse,Read=@"c:\")]
第二个问题:这个代码的意思是不是这个程序集没有读取C盘的权限?如果是的话那么我现在应该输出的是没有权限吧?可是输出的是要求权限成功,请问这是为什么?

解决方案 »

  1.   

    assembly:FileIOPermission(SecurityAction.RequestRefuse,Read=@"c:\")] 
    限制程序集的读取C盘的权限,但是程序集内部你还可以修改这个限制这个有点像Web.Config一样,如果父目录的Web.Config和子目录的Web.Config重复对一个项进行配置,则,在子目录,配置会以子目录的Web.Config配置为主,所以你可以再申请读的权限