代码组(1) 对代码组的管理

简介:

代码组(1) 对代码组的管理

代码组为我们提供了通过配置方式来实现代码访问安全性的途径。通过代码访问安全性策略工具——Caspol.exe,可以创建、删除、更改代码组。

代码组实质是一个条件表达式和一个权限集。如果程序集满足该条件表达式,那么就会被授予该权限集。每个策略级别的代码组集是按树的形式组织的。

代码组同时可以通过属性来说明如何定义安全策略。

对代码组的管理可以使用两个工具,一个是.NET Framework配置工具,一个是Caspol.exe。为了演示这两个工具的使用,对代码组的查看采用Caspol.exe,从命令行操作;对代码组的创建、修改和删除,使用.NET Framework配置工具从图形界面来操作。

查看代码组

首先启动Visual Studio Command Prompt2010),然后从该命令行启动访问安全性策略工具Caspol.exe可以在命令行输入“-?”来查看Caspol.exe的命令帮助,如图1-1所示。

image

1-1 查看Caspol.exe的命令帮助

接下来,使用代码清单1-1的命令来查看不同策略级别下的代码组。

代码清单1-1  查看不同策略级别下的代码组

//查看公司级别的代码组

caspol –enterprise –listgroups

//查看计算机级别的代码组

caspol –machine –listgroups

//查看用户级别的代码组

caspol –user –listgroups

//查看所有级别的代码组

caspol –all –listgroups

//查看默认级别的代码组

caspol  –listgroups

1-2显示了查看计算机级别下的代码组的结果。

image

1-2  查看计算机级别下的代码组

 

 

注意:若使用Caspol.exe 列出处于默认策略级别的代码组,对于计算机管理员,默认级别是计算机策略级别;对于其他人员,默认级别是用户策略级别。

代码清单1-2列出了查看一个策略级别下的代码组名称和说明的命令。

代码清1-2 查看一个策略级别下的代码组名称和说明

//查看公司级别下的代码组名称和说明

caspol –enterprise –listdescription

//查看计算机级别下的代码组名称和说明

caspol –machine –listdescription

//查看用户级别下的代码组名称和说明

caspol –user –listdescription

//查看所有级别下的代码组名称和说明

caspol –all –listdescription

//查看默认级别下的代码组名称和说明

caspol  –listdescription

代码清单1-3是执行查看用户级别下的代码组名称和说明的命令结果。

代码清单1-3  查看用户级别下的代码组名称和说明

D:\Program Files\Microsoft Visual Studio 10.0\VC>caspol -user -listdescription

Microsoft (R) .NET Framework CasPol 4.0.21006.1

Copyright (c) Microsoft Corporation.  All rights reserved.

Policy change prompt is ON

Level = User

Code Groups:

1. All_Code: Code group grants all code full trust and forms the root of the code group tree.

Success

 

 

创建代码组

启动Mscorcfg.msc,展开运行库安全策略,可以看到各个安全级别下的配置内容,如图1-3所示。

image

1-3启动Mscorcfg.msc

以计算机级别为例来添加代码组,首先展开整个代码组树,查看已经存在的代码组,如图1-4所示。

image

1-4  查看已经存在的代码组

可以在任何一个代码组下选择新建它的子代码组,填写代码组名称和说明,如图1-5所示。

image

1-5  创建代码组

然后单击“下一步”,选择代码组条件类型,如图1-6所示。

image

1-6 选择代码组条件类型

对于代码组条件类型,有以下几种选择:

1)所有代码(All Code)。此成员条件对于依据此条件的所有程序集均为True。满足此条件的程序集都将被授予此代码组关联的权限。

2)应用程序目录。对于位于正运行的应用程序的同一目录或子目录中的所有程序集,“应用程序目录”成员条件均为True。满足此条件的程序集都将被授予此代码组关联的权限。

3GAC。对于GAC安装的所有程序集,GAC成员条件均为True。满足此条件的程序集都将被授予此代码组关联的权限。

4)哈希。对于匹配MD5或者SHA1算法的所有程序集,则“哈希”成员条件均为True。满足此条件的程序集都将被授予此代码组关联的权限。

5)发行者。如果程序集使用了与指定的发行者证书匹配的证书进行了数字签名,则“发行者”成员条件为True。满足此条件的程序集都将被授予此代码组关联的权限。

6)站点。对于来自指定站点名称的程序集,“站点”成员条件均为True。满足此条件的程序集都将被授予此代码组关联的权限。

7)强名称。对于强名称,符合我们指定的强名称的程序集,“强名称”成员条件均为True。满足此条件的程序集都将被授予此代码组关联的权限。

8URL。对于源自指定URL的所有程序集,“URL成员条件均为True。满足此条件的程序集都将被授予此代码组关联的权限。

9)区域。对于源自指定区域的所有程序集,“区域”成员条件均为True。满足此条件的程序集都将被授予此代码组关联的权限。区域为InternetIntranet、我的电脑、受信任站点和不受信任站点中的一个。

10)自定义。可以将成员条件定义在XML文件中,然后导入。

选择成员条件之后,要决定是选择现有的权限集还是创建新的权限集,如图1-7所示。

image

1-7  选择使用权限集的方式

选择创建新权限集,然后指定它的名称和说明,也可以导入定义好的权限集,如图1-7所示。

image

1-7 指定权限集的名称和说明。

填写完名称和说明之后,要为权限集指定它所包含的权限,如图1-8所示。

image

1-8  为权限集指定权限

至此,完成了一个代码组添加,其中涉及的成员条件和权限集等的定义方法和操作方式将在后续内容中做详细介绍。

修改代码组

选中要修改的代码组,单击右键,选择“属性”,如图1-9所示。

image 

1-9  修改代码组

从图1-9中可以看出,可以修改代码组的成员条件、权限集的相关信息。

删除代码组

删除代码组的操作比较简单,选中要删除的代码组,单击右键,选择“删除”,如图1-10所示。

image

1-10  删除代码组

 


本文转自悬魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/archive/2012/06/23/2559382.html,如需转载请自行联系原作者

相关文章
|
4月前
|
人工智能 自然语言处理 文字识别
你们催更的模型,云栖大会一口气全发了!
通义发布6款全新模型及“通义百聆”语音品牌,覆盖文本、视觉、语音、视频、代码、图像全场景。Qwen系列升级显著提升多模态理解与生成能力,Wan2.5支持音画同步,百聆攻克企业语音落地难题,全面赋能AI应用创新。
|
XML 人工智能 小程序
一文秒懂ChatGPT官方提示词最佳实践(上)
一文秒懂ChatGPT官方提示词最佳实践(上)
|
XML 开发框架 .NET
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
228 1
|
人工智能 算法 机器人
【Python数据结构与算法】--- 递归算法的应用 ---[乌龟走迷宫] |人工智能|探索扫地机器人工作原理
【Python数据结构与算法】--- 递归算法的应用 ---[乌龟走迷宫] |人工智能|探索扫地机器人工作原理
182 0
|
缓存 JSON Rust
微前端(无界)
微前端是借鉴了微服务的理念,将一个庞大的应用拆分成多个独立灵活的小型应用,每个应用都可以独立开发,独立运行,独立部署,还可以随意组合,这样就降低了耦合度,从而更加灵活。
2343 0
微前端(无界)
|
机器学习/深度学习
分类预测 | MATLAB实现PSO-DBN粒子群优化深度置信网络多输入分类预测
分类预测 | MATLAB实现PSO-DBN粒子群优化深度置信网络多输入分类预测
Uncaught DOMException: Blocked a frame with origin "http://localhost:8000" from accessing a cross-origin frame.
Uncaught DOMException: Blocked a frame with origin "http://localhost:8000" from accessing a cross-origin frame.
2163 0
学会SpringBoot的配置管理了,我的部署成倍提高效率?
Spring-boot 基于数据库的配置管理 好的配置管理 是部署的第一步。 推荐大家 关注我的开源商城项目: jimoos-shop-server,欢迎 Star. 配置管理 做了什么 通常,应用的 配置 在不同 部署 (预发布、生产环境、开发环境等等)间会有很大差异 这其中包括: 数据库,Redis,以及其他 后端服务 的配置 第三方服务的Key,如 存储、推送等 每份部署特有的配置,如域名等