隔离存储
.NET Framework提供了一个特殊的功能 , 隔离存储,用于存储数据,甚至是当不允许对文件进行访问时--例如,当从Internet下载了一个管理控件 , 并运行它,为它提供了有限的许可权但没有权力读写文件 。
隔离存储是一组新的用于.NET支持的用于本地存储的类型和方法 。在本质上,每个组合可以访问磁盘上一断被隔离的存储空间 。它不允许访问其它数据,隔离存储只对为它创建的组合有效 。
隔离存储也可被应用程序用于保存活动记录,保存设置,或者将状态数据保存到磁盘上以备将来之用 。因为隔离存储的位置是预先决定好的 , 所以隔离存储为指定唯一存储空间提供了一种方便的方式,而不需要决定文件路径 。
从本地企业局域网获得的代码具有相似的限制,但更少,它可以访问大限额的隔离存储 。最后,从受限站点区域(不信任站点)来的代码没有对隔离存储的访问权 。
加密
.NET Framework提供了一组加密对象,它们支持加密算法、数字签名、散列、生成随机数,是通过众所周知的运算法则实现的 , 如RSA, DSA, Rijndael/AES, Triple DES, DES, 和 RC2, 以及MD5, SHA1, SHA-256, SHA-384 和 SHA-512散列算法 。同时还支持在IETF和W3C开发的XML数字签名规范 。.NET Framework使用加密对象支持内部服务 。这些对象还作为管理代码提供给需要加密支持的开发人员 。
如何指定安全性?
如果要对组合运行时的行为进行修改,根据程序员的需要,可以作出声明式安全或强迫式安全的修改 。
声明式安全
声明式安全使程序员可以直接在组合代码的元数据中为组合指定安全需求 。许可请求和所有其它形式的声明式安全是在代码中是作为定置属性指定的 。类,属性和方法的注释用于优化许可 。例如,声明式安全可用于类的调用者在调用方法前检查调用者是否被已知地行商签名过,或有一个特定的强名 。
由于声明属性是组合元数据的一部分 , 所以组合的安全需求易于辨别 。可以使用工具对组合进行扫描,以发现哪些方法需要某些许可,哪些方法断言了某些许可 。
当被请求的活动和许可在编译时是知道时,声明式检查可作为选择的解决方案之一 。例如,如果方法总是检查对C:\temp的写访问许可,那么许可检查就会从声明中得到好处 。另一方面,如果被请求的具有访问权的位置发生了变化 , 那么强迫式安全也许是一个比较好的解决方案 。
强迫式安全
强迫式安全直接在代码中实现 。程序员通过程序采取安全活动,并且根据安全堆栈的状态决定是给予还是拒绝许可 。例如,当一个方法请求访问一个特定的文件时,如果调用者(或方法的任何一个调用者)没有被给予必需的许可权限,那么请求失败 。因为强迫式安全是通过程序实现的 , 所以满足了动态需求 。如果你需要对一个特定文件的访问许可,但该许可还要根据其它信息发生变化,那么,强迫式安全就是可选的解决方案 。
总结
.NET Framework安全迎合了这种事实:软件向多样化的移动组件发发展,并根据这种事实提供保护 。在一个细化的、可扩展的策略和许可系统下,用户能够运行功能强大的代码,而同时减少相关的风险 。在没有运行时对用户作出信任决定时 , 管理员可以在各个级别创建强壮的安全策略 。策略是完全可定置的 。开发人员能够集中解决应用程序逻辑,而不用关心核心的安全问题(它由CLR透明地处理) 。然而 , 开发人员可以在任何时候扩展安全模型 。
- 如何获取云服务器的源代码? 云服务器源代码怎么弄
- 如何设置云服务器的源代码? 云服务器源代码怎么设置
- 如何修改云服务器的源代码? 云服务器源码怎么修改
- 如何寻找云服务器的源代码? 云服务器源码怎么找
- 如何配置云服务器的源代码? 云服务器源码怎么设置
- redis哨兵keepalive 代码redis哨兵
- redis怎么写 redis打字代码
- mongodb开发 mongodb是开放源代码吗
- mysql生成器 mysql代码生成er图
- redis编程 redis代码案例
