我开始开发一个新的MVC应用程序,使用实体框架代码优先和Unity进行依赖注入.我使用EF5和Unity是因为我认为它们应该在Medium Trust中工作.然而,当我在web.config中抛出<trust level="Medium" />标记时,我开始收到反射权限异常.

似乎每当我超越使用内置的东西,比如System.Data.SqlClient ADO时.我总是在中等信任度下遇到问题.自动映射器:失败.失败.MySQL:失败.EF5代码优先:失败.国际奥委会:失败.

我只是在追逐白日梦吗?是否有可能使用现代技术实现一个 struct 良好、可测试的web应用程序,并在中等信任度下运行?

在虚拟机/虚拟服务器/云计算(甚至是将您的应用程序池设置为完全信任的少数共享主机)的时代,有没有人觉得开发Medium Trust是值得的呢?

推荐答案

ASP的官方立场.NET团队认为中等信任已经过时.这意味着几件事:

  • 我们正在自动解决所有报告为"无法修复"的与Medium Trust相关的错误.
  • 我们已经向托管者提供了指导,即他们应该远离中度信任,转而使用适当的操作系统级别隔离(http://support.microsoft.com/kb/2698981).
  • 我们正在从我们开发的框架(MVC、WebAPI、SignalR等)中删除中等信任支持.future ,基于这些框架构建的应用程序将需要完全信任.

这里,上面提到的术语"中等信任"指的是ASP中的所有非完全信任配置.NET,包括使用内置信任级别(最小、低、中、高)或任何自定义信任级别.

Edit 26 May 2015:作为一个整体,.NET Framework已弃用部分信任,建议客户不要依赖它作为安全边界.From MSDN:

中的代码访问安全性.NET Framework不应用作

Asp.net相关问答推荐

DataTables-如何修改来自JSON响应或其他DataTables参数的无结果(ZeroRecords)消息

如何在 ASP.NET RadioButtonList 中的项目之间添加空格

如何在 ASP.NET 中设置自动实现属性的默认值

IIS 中的嵌套 ASP.NET应用程序继承父配置值?

Firefox 和 Chrome 之间 1 像素的行高差

静态字段与会话变量

asp.net dropdownlist - 在 db 值之前添加空行

System.Net.Http 版本冲突导致构建警告

SameSite 属性如何自动添加到我的 Asp.net_SessionID cookie 中?

GridView 与嵌套类的属性绑定

从 ASP.NET 中的 POST 方法中检索数据

MVC 3视图中的当前上下文中不存在名称'HTML'

确定哪个 w3wp.exe 进程属于 Windows 7 / IIS7.5 中的哪个 App Pool?

与 Twitter Bootstrap Bundle 的 ASP.NET MVC4

在 ApiController 中添加自定义响应头

使用 Ninject OWIN 中间件在 OWIN 启动中注入 UserStore

ASP.NET MVC 2.0 JsonRequestBehavior 全局设置

web.config 中与 targetFramework 相关的配置错误

如何在 ASP.Net Gridview 中添加确认删除选项?

如何加密 web.config 中的一项