什么是 Asp.net 中的中等信任?

Posted

技术标签:

【中文标题】什么是 Asp.net 中的中等信任?【英文标题】:What is Medium Trust in Asp.net? 【发布时间】:2011-02-06 17:30:23 【问题描述】:

我们什么时候应该在 Asp.net 中使用 Medium Trust?

【问题讨论】:

【参考方案1】:

The most concise description I've seen is here:

完全信任 - 您的代码可以做任何运行它的帐户可以做的事情。 高度信任 - 与上述相同,只是您的代码不能调用非托管代码。即 Win32 API、COM 互操作。 中等信任 - 与上述相同,只是您的代码无法看到文件系统的任何部分,除了其应用程序目录。 低信任 - 与上述相同,只是您的代码不能进行任何进程外调用。即调用数据库、网络等。 最低限度的信任 - 代码只能进行最琐碎的处理(计算算法)。

这些是的区别,你对小细节也感兴趣吗?总体信任级别是指允许代码执行的操作。

【讨论】:

愚蠢的问题:作为 Web 应用程序的开发人员,为什么我应该将信任级别设置为完全信任以外的任何内容?我可以想象这符合网络托管公司限制信任级别的利益。例如:托管公司已将信任级别设置为中等(在机器配置文件中?)。如果我现在想在这家使用完全信任(在我的 web.config 中)开发的托管公司安装 Web 应用程序,会发生什么?我可以完全启动应用程序还是只“禁止”方法抛出异常? @Slauma - 1) 当您针对中等信任度进行开发时,如果这是您的目标环境,如果您正在构建一个人们将部署在其服务器上的门户,您可能希望以中等信任度为目标,例如 DotNetNuke想到了。 2)托管公司赢得信任级别,您不能覆盖他们的设置(假设他们做得正确)。 3) 也许,如果您在应用程序启动中有代码需要访问高于您正在运行的信任级别,它会在启动时爆炸......如果它是稍后运行的代码,它'当一个方法试图访问它无法执行的东西时会爆炸。【参考方案2】:

中等信任仍然为将应用程序彼此隔离以及与共享服务器资源隔离提供了一种受限环境。中等信任应用程序没有注册表访问权限,没有事件日志访问权限,也没有使用反射的能力。 Web 访问仅限于您在“信任”元素中定义的网络地址,文件系统访问仅限于应用程序的虚拟目录。 请记住,您不能通过声明您的应用程序使用中等信任来编辑您的 web.config,如果您的应用程序被编码为执行上述列表中的某些操作,它仍然会引发错误异常。

【讨论】:

以上是关于什么是 Asp.net 中的中等信任?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.Net 中等信任设置

中等信任下的进程内数据库选项

ASP.NE网站发布注意事项

win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NE

Jquery禁用Asp.net核心中的选定选项无法正常工作

表单身份验证、ASP.NET MVC 和 WCF RESTful 服务