.NET code access security已存在很长时间了,但它似乎几乎没有在现实世界中使用过。
就我的思维方式而言,这似乎是一个很好的概念,也是我在.NET之前没见过的概念。 (它是否存在于其他语言中?)
我想知道是否有人在他们的项目中主动使用它以及为什么?
对于那些没有使用它的人,除了“我们没有安全预算”或“我没有时间学习安全”之外,是否有正当理由?
最终实现目标的效果如何?
答案 0 :(得分:8)
它没有被大量使用,因为对于最终开发人员(即,不是为其他开发人员构建组件的开发人员),大多数时候,我们的目标是完全信任的环境,或者针对这样的环境是一种选择。代码将在我们的网络服务器上运行,或者在我们公司拥有的客户端机器上运行。在任何一种情况下,以完全信任方式运行代码都不是问题 - 代码运行的实体信任开发人员。我知道使用CAS的唯一情况是在像Sharepoint这样的环境中,有一半的时间,我们只是GAC那些程序集完全信任。
那么为什么我们不花费精力学习如何编写部分可信方案的代码呢?嗯,说实话,完全信任是有效的,如果你不是在执行者不能信任作家的情况下,那就不需要了,我的客户也不会付钱给我象牙塔式建筑 - 他们支付我运行满足其业务需求的代码。在大多数常见情况下,CAS不是必需的。
答案 1 :(得分:4)
真正的原因是Microsoft没有提供有关如何使用代码访问安全性的指导和最佳实践。所以它从未真正起飞。他们从未解释过为什么要保护代码。发生异常时会发生什么,如何从中恢复。我认为这些是主要问题。
不要将此与数据访问安全性混淆,后者一直在提供指导和最佳实践。