代碼訪問安全(Code Access Security),顧名思義,是用來限制代碼的。它能限制代碼能否被執行,進而來限制ASP.NET程序能執行什麼樣的操作。比如CAS限制你不允許使用FileIOPermission,那麼ASP.NET程序便不能進行IO操作。同樣,如果限制你使用SqlClientPermission,ASP.NET程序便不能進行SQL Server的操作。
CAS默認定義了5個不同的level,它們是Full,High,Medium,Low 以及Minimal。從Full到Minimal,權限越來越低。基本上在Full level的時候什麼都能做,Minimal level的時候只能執行最基本的mangered code。在我們的ASP.NET程序中,trust level是在根目錄下的web.config中配置的,如:<trust level="Full"/>,如果你沒有配置的話,默認為Full level。今天以一個host admin的角色講講怎樣通過CAS來保護server。大概有如下幾個步驟:
1) 明確server上ASP.NET程序需要進行什麼樣的操作。
2) 從預定義好的5個級別中選擇一個最適合的級別。
3) 如果沒有合適的,自己定義一個級別。
4) 定義級別不允許被覆蓋。
5) 測試效果。
第一步:明確server上ASP.NET程序需要進行什麼樣的操作。這是要根據host admin的來定的,在這方面我也沒太多經驗,這裡不過多討論。P.S. 如果你想知道你的ASP.NET程序需要什麼樣的權限,你可以通過一個.NET Framework自帶的工具來查看。這個工具叫Permissions Calculator Tool,我們可以通過.NET Framework的命令窗口來調用它:
輸入:percalc -show D:\MyProjects\Job\bin\Job.dll 回車