2010-10-04 123 views
2

我正在研究.NET 2.0的代碼訪問安全性。我目前的理解如下:關於代碼訪問安全性(CAS)的問題

CAS的基本機制是CLR從程序集中收集某些證據,然後使用證據和策略爲程序集的代碼創建權限集。程序集的代碼除了權限集之外什麼都不能做。

證據用於將某個程序集分類爲某個代碼組,並且權限集以代碼組粒度給出。

CLR在運行時可以收集多種類型的證據。

很容易確定證據,如應用程序目錄,GAC,哈希,強名稱

但如何確定證據,如出版商,網站,區域,網址?這些證據數據在哪裏存儲?他們是大會元數據的一部分嗎?我不認爲像Zone或Site這樣的證據應該是元數據的一部分。

非常感謝。

回答

2

下面的頁面呢,我可以找到解釋這個信息是如何獲得

總結的最好的是,大部分信息是不大會本身,而是提供由CLR的託管環境提供。主機的例子包括

  • 瀏覽器
  • ASP.Net
  • 殼牌主機(正常的應用程序)

這些主機本身提供有關網站,區域等信息......到CLR爲給定的程序集。

+0

在.NET 4.0中,CAS有沒有被刪除/廢棄,因爲幾乎沒有人使用它? – 2010-10-04 09:11:18

+1

@Peter:CAS在.NET 4.0中仍然非常活躍。但是,CLR本身不再強制執行CAS政策。相反,CAS策略僅由諸如ASP.NET和IE之類的主機強制實施。有關詳細信息,請參閱http://blogs.msdn.com/b/shawnfa/archive/2010/02/24/so-is-cas-dead-in-net-4-or-what.aspx。 – 2010-10-04 12:03:32

+0

@Nicole:+1回答。 TNX – 2010-10-04 19:00:26