代码访问安全性基础知识

更新:2007 年 11 月

每种以公共语言运行库为目标的应用程序都必须与运行库的安全系统进行交互。当应用程序执行时,运行库将自动对它进行计算,然后给它一个权限集。根据应用程序获得的权限不同,应用程序或者正常运行,或者发生安全性异常。特定计算机上的本地安全设置最终决定代码所收到的权限。因为这些设置可能因计算机而异,所以您永远无法确保代码将收到运行所需的足够的权限。这与非托管开发领域不同;在非托管开发领域,您不必担心运行代码所需的权限。

为了编写以公共语言运行库为目标的有效应用程序,每个开发人员都必须熟悉下面的代码访问安全性概念:

  • 编写类型安全代码:若要使代码受益于代码访问安全性,必须使用将生成可验证为类型安全的代码的编译器。有关更多信息,请参见编写可验证为类型安全的代码

  • 强制性语法和声明式语法:与运行库安全系统的交互使用强制性安全调用和声明式安全调用执行。声明式调用使用属性执行;强制性调用在代码中使用类的新实例执行。有些调用只能强制性地执行,而有些调用只能以声明方式执行。有些调用可以这两种方式中的任一种方式执行。有关更多信息,请参见安全性语法

  • 为代码请求权限:请求将应用到程序集范围,代码通知运行库在此范围内运行它所需的权限或者具体不需要哪些权限。运行库会在代码加载到内存中时计算安全请求。请求不会使运行库给予代码的权限大于您不请求时运行库给予代码的权限。但是,代码需要使用请求来通知运行库运行它所需的权限。有关更多信息,请参见请求权限

  • 使用安全类库:类库使用代码访问安全性来指定访问类库所需权限。您应该知道访问您的代码所使用的任何库时所需的权限,并在代码中进行相应的请求。有关更多信息,请参见使用安全类库

请参见

概念

编写可验证为类型安全的代码

安全性语法

请求权限

使用安全类库

其他资源

代码访问安全性