ASP.NET安全异常的原因

ASP.NET安全异常的原因,asp.net,security,Asp.net,Security,我的应用程序正在引发具有以下详细信息的安全异常: 描述:应用程序试图执行安全策略不允许的操作 异常详细信息:System.Security.SecurityException:请求类型为“System.Security.Permissions.SecurityPermission,mscorlib,版本=2.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089”的权限失败 [SecurityException: Request for the per

我的应用程序正在引发具有以下详细信息的安全异常:

描述:应用程序试图执行安全策略不允许的操作

异常详细信息:System.Security.SecurityException:请求类型为“System.Security.Permissions.SecurityPermission,mscorlib,版本=2.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089”的权限失败

[SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
   System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
   System.Security.CodeAccessPermission.Demand() +58
   System.Net.ServicePointManager.set_CertificatePolicy(ICertificatePolicy value) +54
   com.paypal.sdk.core.APICallerBase.SetTrustManager() +114
应用程序的信任级别设置为中等,我已将[assembly:AllowPartiallyTrustedCallers]属性添加到项目的程序集


我能做些什么来解决这个问题?System.dll是否允许部分受信任的调用者?

稍微挖掘一下,paypal方法SetTrustManager()可能会尝试重新分配ServicePointManager的证书策略。这是可以的,但它要求基础代码组具有非托管代码权限

我建议您在.Net Framework配置控制台中提供此权限,看看这是否有帮助

或者,您可以将应用程序的config“TrustAll”参数设置为False,以便SetTrustManager不会干扰证书策略(当然,假设所述证书策略对于您需要使用的任何证书都是正常的,换句话说,此TrustAll事件可能会超过此权限错误,但如果证书已被删除,则稍后将失败)

在类似的情况下,我发现这方面的工具非常有用

(与javacavaj注释相对)要允许调用某些程序集的非托管代码:

披露:我不是.NET安全模型方面的专家;以下内容应允许您更改授予某些程序集的权限,以便对手头的问题进行诊断。出于生产目的,请让合格的管理员审查您的.NET配置,因为他/她可能会确保配置是正确的afe并提出一些方法,以便于管理和部署的方式来构造代码组、权限集和其他元素

您可以使用Mscorcfg.msc(即.NET Framework配置控制台)更改.NET安全策略。详细信息可能因.NET版本和Windows主机而异,但通常:

  • 启动mscorcfg(Ctrl面板|管理工具| Msft.Net框架配置)
  • 运行时策略节点,然后是Manchine(或Enterprise,但最好先使用本地cfg…)
  • “权限集”节点,单击右侧面板上的“创建新权限集”
  • 提供名称/说明,下一步
  • 安全|添加
  • 选择Enable Assy execution、Allow calls to unmanaged assemblies和您可能需要的其他权限| OK
  • 选择“代码组”节点,向下导航到相关程序集可能属于的组(更简单,但要为其创建一个组;通常,通过查看组属性中的“成员资格条件”选项卡,您可以知道谁符合给定组的资格。如果可能,请尝试使用强名称或GAC
  • 在“代码组属性”对话框中,选择所需的权限集;使用“查看权限”按钮验证该权限集是否符合给定权限的要求


与上述内容不同,我希望我知道一个网站,在那里这样的程序可以[更好]描述。这可能会有所帮助。通过谷歌搜索提供的几个关键字可能也会产生相关的指针。

我建议可能是主机不允许在web应用程序上使用它?我喜欢你的建议。1.如何通过配置控制台提供非托管权限?2.是否需要设置TrustAll?不确定,何时需要,何时不需要。