2009-04-10 55 views
8

什么是.NET中的CAS(代码访问安全性),以及如何实现它?使用它有什么好处?什么是.NET中的代码访问安全性

+0

万一有人在此线程在.net核心寻找它的土地达 - [基于代码访问安全(CAS)沙箱在.Net Core中不支持**(https://blogs.msdn.microsoft.com/dotnet/2016/02/10/porting-to-net-core/)。您将不得不使用完整的.Net框架才能使用CAS。 – RBT 2017-11-16 00:41:39

回答

13

我发现了解CAS的最佳链接,你可以在my Delicious page on the subject找到。

简而言之,CAS是.NET的安全沙箱。本地应用程序通常具有完全信任,这意味着他们可以做任在浏览器中托管的.NET应用程序无法做太多工作。在这之间,几乎任何安全设置都可以使用CAS进行微调。

它的好处是:可以很好地控制.NET应用程序的功能,即使在登录用户的上下文中也是如此。关于它的最好的部分IMO是安全检查,即使某些代码有权执行某些操作,但如果该方法被另一个程序调用,而该程序不具有有权执行某些操作,该请求将会失败(除非采取特殊措施)。

缺点:这是一个非常复杂的野兽学习。很多陷阱。但希望我提供的链接将引导您学习任何您需要知道的细节。

+0

感谢您分享链接安德鲁... – tush1r 2009-04-10 15:38:13

4

代码访问安全性包含以下元素:

  • 权限
  • 权限集
  • 码组
  • 证据
  • 政策


权限

权限表示对受保护资源的访问权限或执行受保护操作的权限。 .NET Framework提供了几个权限类,如FileIOPermission(处理文件时),UIPermission(使用用户界面的权限),SecurityPermission(这是执行代码所需的,甚至可以用于绕过安全性)等。在此列出所有权限类别,它们列在下面。

权限集

权限集是权限的集合。您可以将FileIOPermission和UIPermission放入您自己的权限集中,并将其称为“My_PermissionSet”。权限集可以包含任意数量的权限。 FullTrust,LocalIntranet,Internet,Execution和Nothing是.NET Framework中的一些内置权限集。 FullTrust拥有全世界的所有权限,而Nothing根本没有权限,甚至没有执行权限。

代码组

代码组是代码的逻辑分组,其具有用于会员指定的条件。来自http://www.somewebsite.com/的代码可以属于一个代码组,包含特定强名称的代码可以属于另一个代码组,并且来自特定程序集的代码可以属于另一个代码组。有像My_Computer_Zone,LocalIntranet_Zone,Internet_Zone等内置代码组。像权限集一样,我们可以根据.NET Framework提供的证据创建代码组以满足我们的要求。网站,强名称,区域,URL是一些证据类型。

政策

安全策略是可配置的一套规则,决定的权限授予代码时,CLR如下。有四个策略级别 - 企业,机器,用户和应用程序域,各自独立运行。每个级别都有自己的代码组和权限集。他们具有下面给出的层次结构。

  1. 企业
  2. 用户
  3. 应用领域
+0

良好的答案兄弟。你可以复制和粘贴得很好。这里的原创文章 - http://www.codeproject.com/Articles/5724/Understanding-NET-Code-Access-Security – 2014-04-08 14:27:11

相关问题