回答
CAS在桌面应用程序中确实只是有用的(可以这么说),在这种应用程序中,您想要限制通过网络运行的应用程序(例如)能够在本地计算机上执行的操作。我发现,即使在这种情况下,与CAS混蛋也要求一个巨大的,毫无意义的头痛。默认配置通常是最明智的。
这种类型的模型对Web应用程序来说明显不太有用,因为您隐式信任应用程序中的所有代码。
我不同意。我总是试图完全信任地运行桌面应用程序,因为客户端无论如何都容易受到非托管应用程序的攻击。 CAS可能成为问题的一个环境是托管的Web应用程序 - 某些托管提供商仅提供中等信任环境。 – Joe 2009-01-07 16:27:34
我从来没有见过它用过。
它的存在完全是为了让您可以说您的代码应该运行的最高级别的安全性。它更像是一种诉讼保护机制,而不是其他任何方面,因为您可以声称您的代码不可能被授权执行某个功能。
个人而言,我相信这是浪费时间,因为它不提供对底层操作系统的实际保护。
这里从微软一些关于它的更多信息:http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx
我曾经遇到过CAS的唯一地方是在Sharepoint它被用来限制什么在BIN目录中的自定义组件可访问(例如,共享点对象模型)。许多人认为CAS太复杂,不值得麻烦,因此他们最终将程序集投入GAC。但是如果你这样做,那么你最好仔细检查代码是否存在安全风险。
学习WPF时,我碰到过一次。它被用在this Sudoku教程中以加载来自其他用户的插件。为插件创建了一个特殊的应用程序域,只有很少的访问权限,并且使用.NET远程处理进行通信。本教程提供了一些有关安全插件加载的深入见解。
VSTO是一种有用的技术,可让您运行Office文档中使用.NET语言编写的托管代码,而不是使用VBA。它需要在客户端机器上以两种方式使用Caspol:
权限Office从部署DLL的位置运行DLL。
权限Office从Office文档的打开位置运行DLL。
我发现caspol是一场噩梦,我认为,就像Makefiles一样,caspol脚本也只有一次是从头开始编写的。
我与其他opionions这里– CAS是那些东西,可能是纸上谈兵一个同意,但我从来没有看到它严重的LOB应用程序中使用,我可能永远也不会。令我感到惊讶的是,人们经常在面谈–现在的上询问CAS相关的问题,认为是完全没有意义的。:)
我想我必须是在荒野孤独的声音,并不同意在这里的其他响应者。
正如我在几个月前对my answer中提到的一个类似问题所述,有一些具体的情况,其中CAS 是要走的路。当然,这只适用于你非常注重安全性并且处理敏感系统的情况,并且考虑到这只是提供了一个额外的防御层,你可能不会到达你需要这个地方的地方您在应用程序中修复了所有其他严重问题。
同样,CAS使您能够限制应用程序可以执行的操作,而不仅仅是用户,并且以非常细化的方式进行操作。
CAS的一个例子是在WPF托管在浏览器应用程序(.xbap's)中。
问题在于如何保护客户端免受在浏览器托管的appdomain中运行托管代码的影响。
为此,WPF(更确切地说,是PresentationHost.exe)创建一个具有受限权限的应用程序域。在其边界内运行的代码使用有限的许可权限运行(例如,没有文件IO,没有注册表访问,只有安全打印等)。
在考虑CAS有用性时,需要考虑的另一个观点是有人在编写将安装在客户端计算机上的库的人的鞋子上。您如何保护客户端机器及其网络免受在浏览器中运行的部分可信代码的影响作为调用这些库的WPF应用程序的一部分? CAS帮助完成这个难题,提出了适当的要求,因此部分可信的代码只能访问安全公开的功能。
- 1. 是否有必要了解代码访问安全性(CAS)?
- 2. .NET代码访问安全性 - 为什么很少使用?
- 3. 关于代码访问安全性(CAS)的问题
- 4. 为什么此代码访问安全性示例被破坏?
- 5. 代码访问安全性问题 - 这里有什么问题?
- 6. 什么是.NET中的代码访问安全性
- 7. PortalSiteMapprovider代码访问安全要求
- 8. 关于产品代码访问安全(CAS)的工作模式
- 9. 的SharePoint代码访问安全性,要求调用Page.TemplateControl.ParseControl
- 10. 代码访问安全
- 11. 什么取代.net中的代码访问安全
- 12. 评估用户代码的安全性问题是什么?
- 13. 使用代码访问安全性,而不GAC
- 14. 制作代码“CAS安全”和“环境安全”
- 15. 为什么我的不安全代码块比我的安全代码慢?
- 16. 为什么这个Kotlin代码仍然需要?访问成员?
- 17. 是否有商业部署和使用基于.NET CAS(代码访问安全)的应用程序?
- 18. 代码访问安全性如何在.NET Framework 4下工作?
- 19. 代码访问安全性和Sharepoint Web部件
- 20. 最佳在线阅读理解.NET代码访问安全性?
- 21. 代码访问安全性正在阻止PInvoking安装API调用
- 22. 要在代码中访问SharePoint属性
- 23. 如何判断代码访问安全性是否允许在库代码中
- 24. PHP的代码安全性
- 25. JSF的安全性问题是什么?
- 26. 为什么coffeescript需要全局安装?
- 27. 什么是C/C++中的“安全”和“不安全”代码?
- 28. 如何在使用Spring与CAS集成时访问安全的后端服务?
- 29. 创建JPEG:将访问受限代码(JPEGImageEncoder)转换为“安全”代码
- 30. .NET代码访问安全性中的“应用程序目录”成员条件的含义是什么?
另请参阅http://stackoverflow.com/questions/1566934/is-code-access-security-of-any-real-world-use – 2009-10-22 08:26:45