从.NET 3.5升级某些ASP.NET代码时,我收到以下编译警告错误: 'System.Security.Permissions.SecurityAction.RequestMinimum'已过时。
该属性已在可用级别上应用:
[assembly: System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.RequestMinimum, Execution=true)]
此外,该代码还使用了P& P Web客户端软件工厂,特别是ObjectBuilder.WCSFExtensions库。 此外,代码提供了一些角色提供程序实现。
请记住,此代码在其他项目中用作框架代码,因此很难确定可能存在的安全要求。
所以milion dolar的问题是:
“System.Security.Permissions.SecurityAction”枚举需要使用什么值?
或者,是否有更好的方法来应用此安全属性?
答案 0 :(得分:14)
您是否阅读了完整的编译器警告或访问其中包含的链接? “裸”CLR不再限制.NET 4.0下的CAS权限,除非您翻转“传统模式”开关,因此无法替换您的RequestMinimum使用。应删除程序集级别的SecurityPermissionAttribute,而不是修改。
有关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。
答案 1 :(得分:-2)
http://msdn.microsoft.com/en-us/library/ee471421.aspx
似乎问题是程序集级别的声明性安全性已被标记为过时。也许你可以在方法级别应用它?