代码访问安全(CAS)问题 [英] Code Access Security (CAS) issues

查看:175
本文介绍了代码访问安全(CAS)问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Caspol在计算机级别,所有代码,区域-我的电脑到Internet上设置了权限集,以删除本地执行代码对文件系统进行读写的权限.请有人可以解释为什么第一个呼叫不会失败,而随后的呼叫却都失败.为什么assert()失败而不是demand()呢?

I used Caspol to set the Permission Set at Machine level, All Code, Zone - My Computer to Internet in order to remove the rights of local executing code to read and write to the file system. Please can someone explain why the first call doesn''t fail yet subsequent calls all do. Why does assert() fail and not demand()?

using System;
using System.Security.Permissions;
using System.Security;

class Program
{
    static void Main()
    {
        FileIOPermission filePermissions = new FileIOPermission(FileIOPermissionAccess.Read, @"C:\Program Files\");

        try
        {
            filePermissions.Demand(); //This call doesn''t fail?
            Console.WriteLine("Demand() Successful\r\n");

            CheckReadPermission();//Fails

            filePermissions.Assert();//Fails?
        }
        catch (SecurityException securityEx)
        {
            Console.WriteLine(securityEx.Message);
        }
        Console.ReadKey();
    }

    public static void CheckReadPermission()
    {
        try
        {
            FileIOPermission filePermissions = new FileIOPermission(FileIOPermissionAccess.Read, @"C:\Program Files\");

            filePermissions.Demand();
        }
        catch (SecurityException securityEx)
        {
            Console.WriteLine(securityEx.Message + "\r\n");
        }
    }
}
//OUTPUT:
//
//Demand() Successful
//
//Request for the permission of type ''System.Security.Permissions.FileIOPermission
//, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'' f
//ailed.
//
//Request for the permission of type ''System.Security.Permissions.SecurityPermissi
//on, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089''
// failed.



请注意,任何可用目录的结果都是相同的.



Please note that results are the same for any usable directory.

推荐答案

只是一个简单的想法-您对其他目录还是对c:\ Program都能得到相同的结果文件\-这可能是系统范围的权限问题,而不是CAS?
Just a quick idea - do you get the same results for other directories or just for c:\Program Files\ - it might be a systemwide permissions issue rather than CAS?


这篇关于代码访问安全(CAS)问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆