网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
应用程序集的安全声明
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式

应用程序集声明主要有三种——RequestMinimum, RequestOptional, and RequestRefuse,它们简述如下:

RequestMinimum -- 程序集运行的绝对必要权限集。 
RequestOptional -- 程序集运行的可选权限集,拥有这些权限集会更好的执行,但非必要。 
RequestRefuse -- 程序集不应该被授予的权限集。 
每一个程序集都可以使用上面三个中的任意一个或多个,最终程序集的权限集取决于已定义的所有特性(Attributes)定义的权限集的并集(union)。

RequestRefuse给人很直观的理解:任何权限集被加到程序集的拒绝列表,程序集就绝不会执行,也就是说,只要赋予了不该拥有的权限集,程序集就不会执行;而另外两个就有点晦涩了,尤其是它们所起的副作用(side effect)。为了演示RequestMinimum和RequestOptional,这里我打算用下面的代码,适当的赋予不同的程序集级别的安全声明来说明:


 1public static class DeclarativeSecurity
 2{
 3    public static void Main()
 4    {
 5        Console.WriteLine(\"In Main\");
 6        if(HaveFileIO())
 7            Console.WriteLine(\"Have full FileIO permission\");
 8        else
 9            Console.WriteLine(\"Do not have full FileIO permission\");
10    }
11
12    private static bool HaveFileIO()
13    {
14        try
15        {
16            new FileIOPermission(PermissionState.Unrestricted).Demand();
17        }
18        catch(SecurityException)
19        {
20            return false;
21        }
22
23        return true;
24    }
25}
RequestMinimum告诉CLR在没有赋予相应权限集时不能执行你的代码,所以如果我给程序集加上如下特性(attribute):


[assembly: FileIOPermission(SecurityAction.RequestMinimum, Unrestricted = true)]
并且从Intranet zone执行程序集,是调用不成功的。当CLR扫描到程序集不能运行在没有提供无限制的文件读写权限集(unrestricted FileIO permission),并且发现本地网络权限(Intranet permission)绝不会赋予文件读写权限集时,加载器(loader)会拒绝加载程序集,同时,你会收到一个FileLoadException,它的内部异常是PolicyException,描述如下: [Page]


Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly ’ReqMin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of itsdependencies. HRESULT 0x80131417 (CORSEC_E_MIN_GRANT_FAIL) Failed to grant minimum permission requests.
File name: ’ReqMin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ --->
System.Security.Policy.PolicyException: Required permissions cannot be acquir

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号