加载程序集时设置特定的权限(Appdomain.ExecuteAssembly())
通常,当我们需要加载外部程序集(例如加载第三方控件)时,为了避免由于第三方控件程序漏洞或希望安全访问该程序集, 我们需要利用System.Security.Policy.Evidence 来创建一个Evidence来限制访问该程序集的权限。
Code
通常,我们都是利用Appdomain.CreateDomain()方法来创建一个应用程序域,并且赋予对应的权限。在我们不需要时,并且可以卸载它来提高程序的效率。
怎么去配置Application Domain 属性呢?这里我们需要用到AppDomainSetup 类.
static void Main(string[] args)
{
AppDomainSetup ads = new AppDomainSetup();
ads.ApplicationBase = "file://" + System.Environment.CurrentDirectory;
ads.DisallowBindingRedirects = false;
ads.DisallowCodeDownload = true;
ads.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
AppDomain d = AppDomain.CreateDomain("NewDomain", null, ads);
Console.Read();
}
{
AppDomainSetup ads = new AppDomainSetup();
ads.ApplicationBase = "file://" + System.Environment.CurrentDirectory;
ads.DisallowBindingRedirects = false;
ads.DisallowCodeDownload = true;
ads.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
AppDomain d = AppDomain.CreateDomain("NewDomain", null, ads);
Console.Read();
}