很想知道爲什麼當我限制分配給程序集的權限時,我的2.0應用程序被允許執行。爲什麼CASPol允許我的.NET應用程序運行?
我在企業級創建了一個新的代碼組,它將匹配具有特定數字簽名的任何程序集。代碼組已設置爲只使用來自相關權限集的權限,並且不會評估較低的策略級別。
運行.NET 2.0 PermCalc指出我的應用程序需要以下權限:
- UnmanagedCode,
- 環境
- FileIO專注
- 註冊
- 反思
我已分配給我的自定義代碼組非託管代碼的許可,但沒有別的。
我的應用程序中的第一種方法要求提前獲得上述所有權限,以便在退出之前向用戶顯示合理的消息。
運行.NET 2.0配置我的程序集上的「評估程序集」工具確實表明我的應用程序只能獲得UnmanagedCode權限。
但是,當我執行我的應用程序正在運行並完成時,顯然要做各種FileIO和註冊表操作。
我的應用程序使用應與限制代碼組匹配的數字簽名進行簽名。
任何人都可以解釋爲什麼這個工程。
注意:我的最終目的是確保我的應用程序不會在網絡共享中執行時發生可怕的崩潰。我希望檢查彙編證據區域是My_Computer,但我不能再用.NET 3.5 SP1來做這件事。見FullTrust On the LocalIntranet
在此先感謝您的任何幫助/建議。
嗨尼科爾,謝謝你的迴應。我意識到我在誤導我的問題上犯了一個錯誤。我的應用程序實際上是一個.Net 2.0應用程序(不應具有3.5的先決條件)。但我確實安裝了3.5 SP1 Framework。我需要進行檢查,因爲用戶可能只安裝了.NET 2.0,但仍嘗試從網絡共享執行。在這種情況下,該應用程序只是崩潰,我希望它更優雅。上面概述的情況是一種測試情況,我期望我的應用程序崩潰......但它不是! –
我現在仔細檢查一下32/64位的clr。 –
啊......現在更有意義了。我已經編輯了我的答案,在規定的條件下爲需求通過添加另一個可能的解釋。 –