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