本章所讨论的安全性包括ms windows安全性和代码访问安全性(code access security),ado.net的安全性。

1.应用程序安全性概述

.net framework实现一个包含两层防护的安全体系。第一层称为基于角色的安全性,该层控制用户对应应用程序资源和操作的访问;第二层CAS,该层不仅控制代码对资源的访问,还控制代码执行特权操作的权限。

1.1 身份验证

身份验证(Authentication)是获取用户证书(用户名,密码)以识别和确认某个机构的过程。

证书(credentials)通常包含一个标示符和身份证据,如用户名和密码、电子邮件地址和密码、用户名和数字证书等。

1.2授权

授权(Authorization)是确定用户是否能够获得某种资源访问权限的过程。资源可能是文件、数据库、注册表等。访问类型包括读取操作、写入操作。写入又包括添加、删除、修改等操作。

1.3身份模拟

身份模拟(Impersonation)允许以客户的身份执行代码。

1.4委派

在计算机之间进行身份模拟称为委派(delegation)。

1.5基于角色的安全性

1.5.1工作组环境

在工作组环境中,每台计算机都在自己的目录中定义了需要访问本计算机的用户。

1.5.2域环境

在域环境中,域控制器包含一个活动目录,该目录将列出能够访问本域的用户。工作站包含一个分配给资源的本地组的目录。

1.5.A 工作组与域 

工作组和域是我们局域网中两个非常重要的概念,但是很多人却它们之间的关系却弄不清楚,今天我们就和大家一起来了解它们之间的差别。

一、工作组

  一个网络建成后,默认所有电脑都处在网上邻居中。当电脑比较多时,则显的非常的乱。因此,可以对其进行分组进行管理。例如销售部服务部等,属于这些部分的电脑分别加入相应的组中,这样我们打开网上邻居首先看到的是这些组,进入组后看到的才是一台台具体的计算机。

  对此,我们某一台电脑要加入组中,只需要右击打开我的电脑属性窗口,在计算机名中单击更改按钮,然后将隶属于设为工具组,并输入自己所属的工作组名称,如果输入的是新名称,那么则默认创建该组并加入该组,设置完毕单击确定按钮重新启动后生效。

    如果是宽松型的,对管理要求不是特别高的可以使用工作组; 

    从上面的介绍可以看出工作组内的每一台电脑之间是平等的,每一个人都可以自由控制自己加入哪一个组,显的比较松散。因此我们又引入了的概念。

二、域

  由一台电脑充当域服务器,由它控制其它电脑能否加入域。

  要加入到域,那么则必须在域服务器的管理工具中打开“Active Directory用户和计算机,然后在左侧选择计算机,并在右侧右击选择新建中的计算机,填入要加入域的客户机的名称,建议使用有一定规律的英文。

在域服务器上做好后,就可以在客户计算机上打开系统属性窗口,然后在计算机名中单击更改按钮,将隶属于设为,然后按提示输入域名以及域用户账户即可。

 如果对资源的访问有较严格的管理,那么则应建立域。 

1.6代码访问安全性

代码访问安全性(CAS)能最大限度地防止用户无意识地执行不安全的代码。

1.6.1证据

  • 强名称
  • 发行者
  • 区域
  • 位置
  • hash密码

1.6.2代码访问权限

代码访问权限用于定义访问特定资源的权利。.net框架实现了多种代码访问权限,以保护系统资源。

1.6.3处理CAS

1.6.4代码组

代码组用于定义一组授予程序集的权限。

1.6.5权限集

权限集是一组可以根据需要分配给代码组的权限。

1.6.6运行时安全策略级别

运行时安全策略级别是一组可应用于企业、本地计算机、用户、和应用程序域的安全级别。每个安全级别都拥有自己的代码组和权限集层次。

1.6.7修改应用程序域级安全策略

1.6.8创建一个测试安全性的项目