更新:2007 年 11 月
本示例说明了代码访问安全性,它是在方法调用内授予或拒绝对资源的访问权的一种机制。例如,可以允许 Microsoft 编写的代码写入磁盘,但禁止其他公司编写的代码访问磁盘。即使在单个应用程序中同时使用两家公司编写的代码,也会强制实施此控制。本示例重复尝试访问磁盘文件和环境变量。在每次尝试前将更改代码访问权限以查看其效果。有关代码访问安全性的更多信息,请参见源代码文件中的注释。
有关使用这些示例的信息,请参见下面的主题:
使用命令提示生成示例
使用命令提示定位到 CAS 目录下的语言特定的子目录中的一个。
根据所选择的编程语言,键入 msbuild PermissionsCS.sln 或 msbuild.exe PermissionsVB.sln。例如,在目录 C:\Documents and Settings\您的用户名\My Documents\Samples\Technologies\CAS\VB 中,在命令行上键入 msbuild.exe PermissionsVB.sln 可生成 Visual Basic 版本。
使用 Visual Studio 生成示例
打开 Windows 资源管理器,然后定位到 CAS 目录下的语言特定的子目录中的一个。
根据所选择的编程语言,双击 PermissionsCS.sln 或 PermssionsVB.sln 的图标,以在 Visual Studio 2005 中打开该文件。
在“生成”菜单上单击“生成解决方案”。
示例应用程序将在默认的 \bin 或 \bin\Debug 子目录中创建。
运行示例
在命令提示窗口中,定位到包含新的可执行文件的目录。
在命令行上键入 Permissions.exe。
![]() |
---|
此示例生成一个控制台应用程序。您必须在命令提示窗口中启动并运行它才能查看相应的输出。 |
要求
**.NET Framework 版本:**2.0、1.1
备注
本示例使用的技术和类包括:
安全性
PermissionSet - 管理一个权限集,以及在堆栈中断言和拒绝权限。
CodeAccessPermission - 用于其静态方法 RevertDeny 和 RevertAssert,它们可恢复 Assert 和 Deny 函数的效果。
FileIOPermission - 管理发出文件系统请求(例如读和写)的权限。
EnvironmentPermission - 管理访问环境变量的权限。
I/O
FileStream- 在示例中打开、读取和写入文件。
Path- 获取文件的完整路径。这一点在处理 FileIOPermissions 时尤为重要,因为系统使安全性基于文件的完整路径。
环境变量
- Environment- 读取进程的环境变量。