0
我在Framework 2.0中玩CAS(我知道它已經過時了)。爲什麼CAS 2.0框架不起作用?
我有以下代碼,我試圖很難崩潰。我編譯項目2.0框架:
using System;
using System.Security;
using System.Security.Permissions;
namespace Authenticode
{
class Program
{
public static void DoSthmUnmanaged()
{
SecurityPermission perm = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
perm.Demand();
}
public static void Main(string[] args)
{
Program.DoSthmUnmanaged();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
我exe
文件複製到網絡驅動器,然後打開「mscorcfg.msc」以及評估從網絡驅動器部件 - 代碼組是Machine\All_Code\LocalIntranet_Zone
預計。當我從網絡執行它時,一切正常,我不明白!
它應該引發異常,因爲來自LocalIntranet的代碼沒有運行非託管代碼的權限。它爲什麼有效?
有趣。那麼也許'mscorcfg.msc'在3.5 SP1更改後沒有更改? – nikita 2013-03-19 10:53:15
@nikita - 從[博客文章](http://blogs.msdn.com/b/shawnfa/archive/2008/05/12/fulltrust-on-the-localintranet.aspx)瞭解更改內容:「核心這種改變是對我們如何將證據分配給網絡啓動的應用程序的一種修改當我們看到一個.exe直接從網絡共享中啓動,而不是給出Local.exe的區域證據時,我們給出.exe區域證據MyComputer 「。 - 關鍵是「直接啓動」。如果通過其他方式加載程序集(例如'mscorcfg'),它仍然會獲得LocalIntranet。 – 2013-03-19 11:00:00
然後這就是我想的答案!謝謝! – nikita 2013-03-19 11:02:40