我寫了下面的代碼來測試CAS:關於產品代碼訪問安全(CAS)的工作模式
[SecurityPermission(SecurityAction.Demand,Flags=SecurityPermissionFlag.Execution)]
static void Main(string[] args)
{
Console.WriteLine("hello, world!");
}
在.NET 2.0的配置,我用上面的程序集的強名稱創建一個代碼組並給予該組無權限集。所以大會沒有按預期開始。
但我注意到,如果我刪除以下屬性:
[SecurityPermission(SecurityAction.Demand,Flags=SecurityPermissionFlag.Execution)]
程序還是無法啓動。那麼這個所謂的聲明式安全有什麼意義?
我讀了幾篇有關CAS的教程,他們使用命令式/聲明式安全來使用CAS。但從上面的例子來看,似乎沒有必要。
如果我故意編寫沒有強制/聲明安全性的代碼,也不提供任何證據給我的程序集,CAS是否會盲目執行任何安全策略?
或者我誤解了預計CAS如何使用?
謝謝。