是否有必要了解代码访问安全性(CAS)?

时间:2009-04-23 14:30:42

标签: c#

是否有必要了解C#中桌面应用程序开发的代码访问安全性(CAS)。

6 个答案:

答案 0 :(得分:7)

这是一个非常广泛的问题,答案取决于许多事情。但是,最重要的两个因素是您的目标环境是您的部署方法。

大多数消费者软件都安装了安装程序(MSI),并在目标计算机上获得完全信任。如果这是您的环境和交付方式,您可能永远不需要学习或掌握代码访问安全性。另一方面,企业客户通常希望更多地控制软件能够做什么和不能做什么。代码访问安全性使IT能够锁定应用程序以及他们可以对其安装的机器进行断言的控制。因此,如果您正在为Enterprise构建,则可能需要了解CAS。

无论您的目标市场如何,部署应用程序的方式可能都需要您了解CAS。默认情况下,XBAP应用程序不是完全信任的,需要重要的步骤才能提升到完全信任。 Click-Once部署的应用程序也不是完全信任的,但可以更容易地提升到完全信任。因此,如果您计划使用这些方法之一部署软件,您可能希望了解CAS。

最后,根据定义,Silverlight作为一个平台并不是完全信任的。事实上,它永远不可能完全信任。这不是CAS问题,因为没有深入的理解CAS将帮助您克服Silverlight不包含执行完全信任活动所需的代码的事实。然而,我在这里包含Silverlight的原因是,在理解设计中存在的某些安全限制时,对CAS的良好理解可能会派上用场。

希望有所帮助。

答案 1 :(得分:4)

是的,如果你想获得MCPD。在现实世界中,我从未需要它。我为政府编写申请,他们在安全方面非常紧张,他们从未要求过。

答案 2 :(得分:3)

这不是必需的,但它确实有助于使您的应用程序更安全。对方法的隐含声明使你的意图明确。

答案 3 :(得分:2)

呃,这是一个好主意(我猜),但在现实生活中,当你尝试从网络驱动器上部署或读取文件时,CAS只会出现丑陋的头脑。 “学习”并不难,但我不想详述。

答案 4 :(得分:2)

桌面应用程序被视为“完全信任”,您永远不需要CAS用于完全信任的应用程序。

我在.NET 1.0发布后不久就买了一本书,我将永远不会花时间阅读它。

答案 5 :(得分:2)

我从未遇到过需要代码访问安全性的情况。这是获得MCPD或MCSD(或任何新证书)的明确要求,但我认为更好的想法是在走下路线之前理解安全编码实践(配置加密,处理用户输入等)代码访问安全性。