Security 将安全沙箱从.NET2.0移植到.NET4.0

Security 将安全沙箱从.NET2.0移植到.NET4.0,security,.net-4.0,appdomain,Security,.net 4.0,Appdomain,我有一个正在工作的.NET 2.0加载项,它接受由外部应用程序创建的AppDomain,并使用AppDomain.SetAppDomainPolicy()方法应用用户定义的安全策略(PolicyLevel)。但是,此方法在.NET4.0中已过时,并且在运行时失败。下面是一个示例代码: 域名。SetAppDomainPolicy(pl)//这在.NET4.0中失败 我看到了使用以下调用设置AppDomain安全性的4.0示例: AppDomain.CreateDomain(字符串friendl

我有一个正在工作的.NET 2.0加载项,它接受由外部应用程序创建的AppDomain,并使用AppDomain.SetAppDomainPolicy()方法应用用户定义的安全策略(PolicyLevel)。但是,此方法在.NET4.0中已过时,并且在运行时失败。下面是一个示例代码:

域名。SetAppDomainPolicy(pl)//这在.NET4.0中失败

我看到了使用以下调用设置AppDomain安全性的4.0示例:

AppDomain.CreateDomain(字符串friendlyName、证据安全信息、AppDomainSetup信息、PermissionSet grantSet、params StrongName[]FullTrustAssemblys)

但是,此API在已创建AppDomain时使用。在我的情况下,加载项必须使用现有的AppDomains

我发现的另一个解决方案是使用.config文件并添加
元素来强制旧式AppDomain安全性。在我的情况下,这也不是一个选项,因为我有一个应用程序加载项,无法添加.config文件

在.NET 4.0中创建AppDomain安全性后,是否有方法在运行时更改其安全性

我希望这应该是可能的,因为否则它看起来像4.0删除了在运行时加强安全性的功能

谢谢

AppDomain domain = ExternalApplication.GetAppDomain(); //This call is from external program which I can’t change.

PolicyLevel pl = GetUserDefinedPolicyLevel()