2009-04-10 79 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

相關問題