当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 7. 代码访问安全性7.1 什么是代码访问安全性 (CAS)?CAS 是 .NET 安全性模型的一部分,它确定一段代码是否允许被运行,以及当它运行是可以使用什么资源。
 

 

    摘要: beta 1 to beta 2 changesheres the first thing i would do if you are a developer of .net 1. bookmark this page! it will save you a ton of time as you migrate your apps. then as you find a brok......
    摘要: 增补透视一文:将 ......


.NET技术FAQ(二)

7. 代码访问安全性

cas 是 .net 安全性模型的一部分,它确定一段代码是否允许被运行,以及当它运行是可以使用什么资源.例如,cas 可以防止一个 .net 的 web applet 将你的硬盘格式化. 【程序编程相关:ProgrammingfortheNew

7.1 什么是代码访问安全性 (cas)? 【推荐阅读:CreationalPattern-Bu

7.2 cas 如何起作用? 【扩展信息:用ASP.Net编写留言本

 

cas 安全策略设计两个关键概念—代码组与权限.每个 .net 元件是特定 代码组的成员,并且每个代码组被授予由有名权限集所指定的权限.

例如,使用默认的安全策略时,一个从 web 站点下载的控件属于“zone - internet”代码组,它保持由有名权限集“internet”所定义的权限.(自然,有名权限集“internet”表示一组受到严格限制的权限.)

 

7.3 谁定义 cas 代码组?

microsoft 定义了一些默认代码组,但你可以改变这些甚至创建你自己的代码组.要想看到你的系统中定义的代码组,可以从命令横行运行“caspol -lg”命令.再我的系统里它看起来像这些:

level = machine

code groups:

1.  all code: nothing

   1.1.  zone - mycomputer: fulltrust

      1.1.1.  honor skipverification requests: skipverification

   1.2.  zone - intranet: localintranet

   1.3.  zone - internet: internet

   1.4.  zone - untrusted: nothing

   1.5.  zone - trusted: internet

   1.6.  strongname - 0024000004800000940000000602000000240000525341310004000003

000000cfcb3291aa715fe99d40d49040336f9056d7886fed46775bc7bb5430ba4444fef8348ebd06

f962f39776ae4dc3b7b04a7fe6f49f25f740423ebf2c0b89698d8d08ac48d69ced0fc8f83b465e08

07ac11ec1dcc7d054e807a43336dde408a5393a48556123272ceeee72f1660b71927d38561aabf5c

ac1df1734633c602f8f2d5: everything

注意代码组的层次—顶层 (all code) 是最通用的,它随后分为几个组,每个还可以再分.同时注意,与一般的想象不同,子组可以被赋予比它的上级更宽的权限集.

 

7.4 如何定义自己的代码组?

使用 caspol.例如,假定你信任来自 www.mydomain.com 的代码,并且希望它对你的系统拥有完全的访问权,但是希望对其它 internet 站点保持默认的限制.要实现这些,你可以在“zone - internet”组中增加一个子组,就像下面那样:

caspol -ag 1.3 -site www.mydomain.com fulltrust

现在如果你运行 caspol -lg 就可以看到新的代码组被增加为 1.3.1 组:

...

   1.3.  zone - internet: internet

      1.3.1.  site - www.mydomain.com: fulltrust

...

注意数字标号 (1.3.1) 只是 caspol 编出来以便能从命令行方便地操纵代码组的.底层的运行库永远看不到它.

 

7.5 如何改变代码组的权限集?

使用 caspol.如果你是机器的管理员,你能在 machine 层次上操作—这不仅意味着你所做的改变将成为机器的默认设置,而且用户不能把权限改得更宽.如果你是一个普通用户 (不是管理员) 你仍然可以修改权限,但只能使它们变得更严格.例如,为使 intranet 代码能做它们想做的事,你可能需要这样:

caspol -cg 1.2 fulltrust

注意,因为 (在标准的系统里) 这比默认的安全策略权限更大,你应该在 machine 层次上做这些—在 user 层次上这样做不起作用.

 

7.6 能否创建自己的权限集?

是的.使用 caspol -ap,指定一个包含权限集中所有的权限的 xml 文件.这里 是一个指定 everything 权限集的示例文件—修改它以适应你的需要,这样可以节省一些时间.
...   下一页
    摘要: .net my services对应用程序开发的影响 作者: zdnet china 特稿 日期: 2001年10月24日 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE