2009-05-04 57 views
7

.NET code access security已經存在了很長一段時間,但它似乎很少被用在現​​實世界中。.NET代碼訪問安全性 - 爲什麼很少使用?

爲了我的思維方式,這似乎是一個很好的概念,一個我之前沒有對.NET看到。 (是否在其他語言中存在嗎?)

我想如果有人在他們的項目,爲什麼主動用它來知道嗎?

對於那些不使用它,有沒有超越「我們沒有安全預算」或「我沒有學安全時間」正當理由嗎?

最終效果如何實現其目標?

+0

好問題。我同意(根據我的經驗),它幾乎沒有使用,但不能說爲什麼。然而,學習曲線當然是一個因素。也許大多數開發人員從來沒有發現它的用途?我當然沒有超過我在VB.NET和C#中開發的多年... – Noldorin 2009-05-04 19:31:21

回答

4

真正的原因是微軟沒有提供關於如何使用代碼訪問安全性的指導和最佳實踐。所以它從未真正起飛。他們從來沒有解釋爲什麼你想要保護你的代碼。發生異常時會發生什麼,如何從中恢復。我認爲這是主要問題。

不要與已經給予指導和最佳做法的數據訪問的安全性混淆。

+0

我不是在跟隨爲什麼「發生異常時會發生什麼」與CAS有什麼關係 - 您是在考慮ReliabilityContract的東西? – 2009-05-04 19:38:43

+0

當您無法訪問某些代碼時,不會引發異常。當代碼依賴於該代碼塊時會發生什麼?你如何處理這種情況? – 2009-05-05 00:51:51

8

它已不常用,因爲(即構建爲其他開發人員使用的組件即不是開發者),大部分的時間,我們要定位一個完全信任的環境中,或針對這樣的終端開發環境是一種選擇。代碼可以在我們的網絡服務器上運行,也可以在我們公司的客戶機上運行。無論哪種情況,以完全信任方式運行代碼都不是問題 - 代碼運行的實體相信開發人員。我知道CAS使用的唯一情況是在Sharepoint這樣的環境中,有一半時間,我們只是將GAC的這些程序集完全信任。

那麼,我們爲什麼不花費學習如何編寫自己的代碼部分信任的情況下努力嗎?說實話,完全信任的作品,如果你沒有處於執行者不能相信作者的情景,那就不需要了,我的客戶不會爲我支付象牙塔建築費用 - 他們支付我運行符合其業務需求的代碼。在大多數情況下,CAS不是必需的。

相關問題