简短的答案已经给出。我正在寻找长答案。子问题:
- 完全信任的应用程序会抛出 SecurityException 吗?如果是,在什么情况下?
- 什么是“CRL 安全设置”,它们在哪里,我有多少需要担心它们?
- 在 eg 中捕获 ArgumentException 是没有意义的
int.Parse("25")
。我什么时候可以确定永远不会抛出 SecurityException?
简短的答案已经给出。我正在寻找长答案。子问题:
int.Parse("25")
。我什么时候可以确定永远不会抛出 SecurityException?对于最完整的答案,我建议下载共享源转子并搜索SecurityException
抛出 a 的地方。
以及一些样本发现:
HttpWebRequest.CheckResubmit
, 如果Demand()
onWebPermission
失败BaseConfigurationRecord.CheckPermissionAllowed
, 如果Demand()
对于 aConfigurationPermission(PermissionState.Unrestrictred)
在某些情况下失败(还有很多)
...
这不是一个全面的答案,但如果组成 Web 应用程序的文件的 NTFS 权限不允许访问针对运行 Web 应用程序的应用程序池的标识集,则完全信任的 ASP.net 应用程序将引发 SecurityException。你会得到一个非常令人困惑的异常,看起来应用程序没有完全信任,即使它确实如此。您根本无法保证永远不会抛出安全异常,因为它取决于环境而不是您可能编写的任何代码。例如,在两台不同的服务器上完全相同的代码,一个可能会抛出 SecurityException,而另一个可能不会。