0

フレームワーク 2.0 で CAS を使用しています (廃止されていることはわかっています)。

次のコードがあり、クラッシュしようとしています。私は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 のコードにはアンマネージ コードを実行する権限がないため、例外がスローされるはずです。なぜそれが機能するのですか?

ここに画像の説明を入力

4

1 に答える 1

1

マシンに 3.5 SP 1 がインストールされている場合、それは 2.0 の上に構築されていることを思い出してください。ネットワーク共有からフル トラストでの実行に exe の実行を切り替えたのは Service Pack でした。

What's New in the .NET Framework Version 3.5 SP 1から:

ネットワーク共有から開かれたマネージド アプリケーションは、完全な信頼で実行されるため、ネイティブ アプリケーションと同じ動作をします。

于 2013-03-19T10:44:54.020 に答える