如何修复"'System.Security.Permissions.SecurityAction.RequestMinimum'是过时的"编译错误?

Sch*_*alk 14 asp.net wcsf code-access-security

从.NET 3.5升级某些ASP.NET代码时,我收到以下编译警告错误:'System.Security.Permissions.SecurityAction.RequestMinimum'已过时.

该属性已应用于组合级别:

[assembly: System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.RequestMinimum, Execution=true)]
Run Code Online (Sandbox Code Playgroud)

此外,代码还使用了P&P Web客户端软件工厂,特别是ObjectBuilder.WCSFExtensions库.此外,代码提供了一些角色提供程序实现.

请记住,此代码在其他项目中用作框架代码,因此很难确定可能存在的安全性要求.


所以milion dolar的问题是:

"System.Security.Permissions.SecurityAction"枚举需要使用什么值?

或者,是否有更好的方法来应用此安全属性?

Nic*_*oiu 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. aspxhttp://blogs.msdn.com/b/shawnfa/archive/2010/02/24/so-is-cas-dead-in-net-4-or-what.aspx.

  • 程序集级别的 RequestMinimum 只是指示主机在未授予指定权限的情况下不要加载程序集。无论如何,用于执行权限的 RequestMinimum 几乎毫无用处,因为主机不会在程序集中运行任何代码,除非它具有执行权限。未授予权限时运行时行为的唯一区别是异常的详细信息以及何时引发异常。但是,无论该属性是否存在,您都会在执行程序集中的任何代码之前看到异常。 (2认同)