尝试通过安全透明方法“Compat.Button1_Click(System.Object, System.EventArgs)”访问安全关键方法“x”失败

Posted

技术标签:

【中文标题】尝试通过安全透明方法“Compat.Button1_Click(System.Object, System.EventArgs)”访问安全关键方法“x”失败【英文标题】:Attempt by security transparent method 'Compat.Button1_Click(System.Object, System.EventArgs)' to access security critical method 'x' failed 【发布时间】:2014-06-09 15:01:17 【问题描述】:

整个错误如下:

尝试通过安全透明方法'Compat.Button1_Click(System.Object, System.EventArgs)' 访问安全关键方法'System.Management.ManagementObjectSearcher..ctor(System.String)' 失败。

程序集'App_Web_d3moi4vm, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' 是部分受信任的,这会导致 CLR 使其完全安全透明,而不管程序集本身是否有任何透明度注释。为了访问安全关键代码,这个程序集必须是完全可信的。

这是一个检查客户端计算机系统配置并显示它的网站。这是一些安全问题吗?我该如何克服呢?

      Line 18:     protected void Button1_Click(object sender, EventArgs e)
      Line 19:     
      Line 20:         ManagementObjectSearcher MOS = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
      Line 21:         foreach (ManagementObject MO in MOS.Get())
      Line 22:         

【问题讨论】:

【参考方案1】:

将此行添加到 assemblyinfo.cs:

[程序集:SecurityRules(SecurityRuleSet.Level1)]

请参阅1、2、3 了解更多信息。 祝你好运!

【讨论】:

以上是关于尝试通过安全透明方法“Compat.Button1_Click(System.Object, System.EventArgs)”访问安全关键方法“x”失败的主要内容,如果未能解决你的问题,请参考以下文章

通过安全透明方法 Kigg.Web.jQueryScriptManager.OnInit 的尝试

System.MethodAccessException:尝试通过安全透明方法访问安全关键方法在所有应用程序上失败

尝试通过安全透明方法“WebMatrix.WebData.PreApplicationStartCode.Start()”

如何解决错误“尝试通过安全透明方法'System.Web.Http.GlobalConfiguration.get_Configuration()

急急急!!!在线等!!!方法必须是安全关键的或安全可靠关键的,才能调用本机代码。

尝试将强名称 dll 包含到 2 级安全透明模型中