从.NET 3.5升级某些ASP.NET代码时,我收到以下编译警告作为错误:
‘System.Security.Permissions.SecurityAction.RequestMinimum’已经过时了.
‘System.Security.Permissions.SecurityAction.RequestMinimum’已经过时了.
该属性具有应用于assebly级别的蜜蜂:
[assembly: System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.RequestMinimum,Execution=true)]
此外,该代码也利用了P& P Web Client Software Factory,特别是ObjectBuilder.WCSFExtensions库.
代码也提供了一些角色提供者的实现.
请记住,此代码用作其他项目中的框架代码,因此很难确定可能存在的安全需求.
所以极限的问题是:
什么值需要用于“System.Security.Permissions.SecurityAction”枚举?
解决方法
您是否阅读完整的编译器警告或访问其包含的链接? “裸”CLR不再限制在.NET 4.0下的CAS权限,除非您翻转“传统模式”开关,因此您的RequestMinimum使用没有替代.程序集级SecurityPermissionAttribute应该被删除,不被修改.
有关MSDN上显示的4.0 CAS更改的更完整的说明,请参阅http://blogs.msdn.com/b/shawnfa/archive/2009/05/21/security-policy-in-the-v4-clr.aspx和http://blogs.msdn.com/b/shawnfa/archive/2010/02/24/so-is-cas-dead-in-net-4-or-what.aspx.