
Net安全编程实战最近看了一些关于.Net安全编程方面的资料,把自己的理解拿出来分享一下。
在深入了解.Net在安全性方面提供的支持之前,还是先说点理论。 .Net运行时为不同的应用程序模型提供了一个运算平台,它不仅仅是为单机应用程序提供了运行环境,更重要的是它还为分布式系统, 基于组件的系统以及基于Web的系统(如Asp.net和Web service)都提供了安全稳定的平台。为什么说.Net安全而且稳定,因为有.Net运行时(CLR),CLR是什么不是这里讨论的重点,但是它带来了和以前Win32代码的本质不同的地方,它所有的代码都是由CLR控制的,而不是象以往直接以PE文件格式被载入和运行的二进制码,它的每一条指令都会在被载入的时候被CLR转换成机器码执行(CLR运行时是由一个COM进程mscorlib.dll加载的,扯远了,参考相应的资料)。正是因为如此,CLR对代码有控制和管理的能力(这也是.Net的代码称之为托管代码的原因),所以只要在CLR中设立一套机制就可以很容易的对代码的执行进行控制,使得任何代码在执行的时候进行一些安全性上的检查。我们把这种安全性成为Code Access Security(简称CAS),可以看到它针对的对象是代码,而不是以往基于角色的安全管理。当然.Net也提供了其他两种安全机制,他们存在的目的包括了基于角色管理的安全机制,以和以前的系统安全机制兼容,别忘记了,.Net还能执行非托管代码啊。