gpt4 book ai didi

.net - “Code Access Security” 在现实世界中有用吗?

转载 作者:行者123 更新时间:2023-12-03 05:29:36 25 4
gpt4 key购买 nike

警告:

自从提出这个问题以来,较新版本的 .Net 和 .Net core 已经删除和/或更改了“代码访问安全性”(CAS)。

原问题:

我正在为70-536 .NET Framework - Application Development Foundation Exam 学习,因为我已经编写 .net 多年了,这应该不难!

但是,我必须了解“代码访问安全性”(CAS),因为我从来不需要使用或配置它,我想知道是否有其他人找到了它的实际用途?

请举例说明您何时使用过 CAS 并且它已成为解决方案的一部分,而不是问题的一部分。

(到目前为止,其他一切都与我在 .NET 编程多年中必须完成的任务有某种关系)

相关问题:

  • Why to use CAS (Code Access Security)? - 除了微软如何使用它之外,这几乎没有真实世界的例子。
  • Anyone really using Code Access Security to protect their assemblies and/or methods?
  • What is Code Access Security in .NET - 很好地定义了 CAS,但没有给出真实的例子。
  • . NET Code Access Security: Useful or just overcomplicated?


  • 结果到此为止。
  • 当您托管第 3 方代码时,CAS 很有用。例如。网络托管公司可以使用它来阻止其客户的 Asp.net 代码对服务器造成损害。 (当 .NET 用作 VBA 的替代品时,Office 也会使用它)
  • 到目前为止,它在 Microsoft 应用程序之外使用的唯一详细示例是:

    A recent project I did had something similar: allow the user to upload a library, and test it for performance ("who makes the best algorithm"). Needless to say, we needed CAS heavily there.

  • CAS 好像对获得 JITDC 认证很有用,就像美国国防部一样,但是我不知道 CAS 是否有任何实际值(value),或者它只是打勾。

  • (如果您需要绕过使用 CAS 的主机,并且您在他们的机器上拥有管理员权限,您可以将您的程序集放在 GAC 中。)

    展望 future , CAS is a bit less complex in .net 4 .

    至少看起来新的 Microsoft 考试不会有包含 CAS 的“基础”考试。我不知道它是否会进入新的 Winforms/WPF 考试。

    最佳答案

    我在“现实世界”中经常遇到代码访问安全性,通常是在我最不期望的时候。在某种程度上,如果不是 SilverLight chose not to employ CAS,SilverLight 将是它的一个出色的现实世界应用程序。最后。

    托管服务提供商

    您看到它运行的地方是需要安全环境的地方:当然是 ASP.NET 本身,但 ASP.NET 托管提供商使用修改后的安全模型来防止入侵他们宝贵的系统。我知道 Webhost4Life 使用这个的事实(在他们的网站上没有关于它的信息,但我和他们一起工作过,它在那里,真的)。进一步看,其他 ASP.NET 托管服务提供商也这样做,但他们也不是很清楚:thread on godaddy.com not想要更改 CAS(不清楚支持什么和不支持什么)或 this related discussion on 1&1 .一些云托管站点 (rackspacecloud) 更进一步,“与 Microsoft 合作以修改完全信任级别”,无论可能是什么。

    简而言之:如果您找到 ASP.NET 主机,他们很可能已经使用 CAS 来阻止您做他们不希望您做的事情。他们甚至可以使用它来区分“基本”(许多限制)托管和“企业”(很少限制)托管,这为 CAS 赋予了完全不同的含义。

    CAS的其他应用

    对于我自己遇到的一些真实世界的情况,就这么多了。我最近做的一个项目有类似的东西:允许用户上传一个库,并测试它的性能(“谁制作了最好的算法”)。不用说,我们在那里非常需要 CAS。其他示例或有趣的资源:

  • NAR Loader (一个代码项目应用程序)使用它自己的 CAS
  • LR Evaluator (也是 codeproject 应用程序)使用 CAS
  • ClickOnce(见下文)使用 CAS
  • CAS Design Patterns :它的流行“假设”正在使用 CAS
  • Understanding CAS :更受欢迎和一些评论暗示应用
  • 微软 SharePoint uses CAS一路上,好像(抱歉,我不是SP专家)

  • 对于您完全控制自己、构建自己的应用程序和代码(或已构建)并完全控制系统的任何情况,我认为您不会经常需要 CAS。当您从不太受信任的来源(基本上是您无法完全控制的所有内容)运行代码时,您会使用更多的东西。

    CAS 与 ClickOnce

    默认 CAS 设置限制了从网络共享或其他非本地源运行的代码的功能。这是有道理的,但严格的限制使得分布式应用程序很难拥有一个中央存储库。 .NET 2.0 引入了 ClickOnce,旨在提升安全性 ( discussion here)。

    ClickOnce 本身 uses CAS , 以防止安装程序调用系统功能。因此,我相信它可以说是最知名的依赖于 CAS 的应用程序。

    重点是:您需要了解 CAS 才能创建可以直接从共享运行的内容,或者您​​将其全部忽略并使用 ClickOnce。

    微软对 CAS 的调查

    2005年,微软 summoned a survey找出CAS为何如此冷门的原因,希望对其进行改进以使其更好地适用。不幸的是,我找不到实际的调查结果,除了 this post somewhat detailing为什么 CAS 没有得到充分利用。

    异世界的CAS

    然而,那篇文章确实指出了一个有趣的利基:CAS 应用于另一个世界:Unix/Linux。他们不称它为 CAS,而是 BitFrost .实际应用程序如何: "One Laptop Per Child" project ,它依赖 BitFrost 作为传统 Unix 安全模型的替代品。

    更新:在 Unix/Linux 中作为 BitFrost 的 CAS 部分和关于调查的部分。
    更新:添加了 CAS 与 ClickOnce 部分
    更新:添加了使用 CAS 的资源列表(并对所有这些更新表示歉意!)

    关于.net - “Code Access Security” 在现实世界中有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1566934/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com