在什么情况下,在.NET中抛出SecurityException究竟是什么?

时间:2011-04-06 14:40:52

标签: .net clr securityexception

The short answer has been given already.我正在寻找答案。子问题:

  • 完全信任的应用程序是否会抛出SecurityException?如果是,在什么情况下?
  • 什么是“CRL安全设置”,它们在哪里,以及我需要担心多少?
  • 在例如,捕获ArgumentException是没有意义的。 int.Parse("25")。我什么时候可以确定永远不会抛出SecurityException?

2 个答案:

答案 0 :(得分:2)

要获得最全面的答案,我建议您下载共享源转子并搜索引发SecurityException的地方。

这是一个下载网站:http://www.microsoft.com/downloads/en/details.aspx?FamilyId=8C09FD61-3F26-4555-AE17-3121B4F51D4D&displaylang=en

以及一些样本发现:

  • HttpWebRequest.CheckResubmit,如果Demand()上的WebPermission失败
  • BaseConfigurationRecord.CheckPermissionAllowedDemand() ConfigurationPermission(PermissionState.Unrestrictred)在某些情况下失败

(还有更多)

...

答案 1 :(得分:0)

这不是一个全面的答案,但是如果组成Web应用程序的文件的NTFS权限不允许访问Web应用程序的应用程序池中的身份集,则完全信任的ASP.net应用程序将抛出SecurityException。跑下。你得到一个非常令人困惑的异常,看起来该应用程序即使有这种情况也没有完全信任。您根本无法保证永远不会抛出安全异常,因为它依赖于环境而不是您可能编写的任何代码。例如在两个不同的服务器上完全相同的代码,一个可能抛出一个SecurityException而另一个可能没有。