【问题标题】:SecurityAction.RequestMinimum is obsolete in .Net 4.0SecurityAction.RequestMinimum 在 .Net 4.0 中已过时
【发布时间】:2012-07-22 10:49:48
【问题描述】:

最近,我们的 .Net 客户端 libaray 正在升级以针对 Net 4.0 进行编译。 将目标框架改成4.0后,应用出现编译错误。

AssemblyInfo.cs:

[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)]

错误 7 警告为错误:'System.Security.Permissions.SecurityAction.RequestMinimum' 已过时:'"程序集级别的声明性安全性已过时,默认情况下 CLR 不再强制执行。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=155570。 "' `

在 .Net 4.0 中,它显示:SecurityAction.RequestMinimum 已过时,我们将所有警告视为错误。

我应该用它做什么? - 只需删除它(这会产生一些意想不到的影响吗?例如在 IIS 中使用 dll 时)或更改为其他值? 我不熟悉.Net,尤其是它的安全机制。

有人可以帮忙吗?感谢您的任何建议和评论:)

【问题讨论】:

    标签: c#-4.0 .net .net-security


    【解决方案1】:

    来自MSDN

    在 .NET Framework 版本 4 中,已删除用于强制执行 Deny、RequestMinimum、RequestOptional 和 RequestRefuse 权限请求的运行时支持。这些请求不应在基于 .NET Framework 4 或更高版本的代码中使用。

    所以,把它删掉吧。

    【讨论】:

    • 抱歉回复晚了。谢谢,Centro,正如你所说,我只是删除了标签,它可以工作:)
    • 只是想让您知道,如果您依赖 VS2013 resgen 自动生成的类文件,除非您手动/自动对文件进行后处理,否则无法避免此警告。
    • 把洞去掉就可以了:[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)]??
    • 如果这就是你的意思,我不确定是否可以修复一些安全漏洞。欲了解更多关于为什么它被删除的详细信息,请查看this post
    • @Centro 严格来说是这样吗? Visual Studio 生成的警告消息表明它默认情况下被禁用。另见docs.microsoft.com/en-us/dotnet/framework/configure-apps/…msdn.microsoft.com/en-us/library/…
    【解决方案2】:

    一些搜索让我在这里找到了一个类似的 VB.net rdlc 错误(所以是的,我知道这个问题被标记为 C#)。我没有使用有问题的代码,但我确实发现一个杂散的下划线导致了这个错误,例如:在一个文本框表达式中你可能不小心输入了:

    "This is a " & _
    "test"
    

    认为您在某些代码中,但是很遗憾,这会产生与上面列出的相同的错误,并且一旦删除,错误就消失了。

    【讨论】:

    • 我看到与不匹配的括号相同
    猜你喜欢
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2022-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多