我开始开发一个新的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相关问答推荐

由于 Blazor Change Detection API,组件重新渲染被跳过.如何避免?

无法为媒体类型application/x-www-form-urlencoded生成样本

如何以编程方式设置单元格 colored颜色 epplus?

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

你能从请求变量中确定时区吗?

解析器错误消息:无法加载类型sometype

在 cookie 中存储多个值

ASP.NET 在更新面板更新时显示正在加载...消息

c# - 如何从列表中获取值的总和?

使用 Visual Studio 2012 恢复删除的文件

ASP.net 与 PHP( Select 什么)

以编程方式从后面的代码中关闭 aspx 页面

在 ASP.NET MVC 中使用 Razor 创建可重用的 HTML 视图组件

与 Twitter Bootstrap Bundle 的 ASP.NET MVC4

带有 ASP.NET WebMethod 的 Jquery AJAX 返回整个页面

SQLServer 与 StateServer 的 ASP.NET 会话状态性能

使用 Twitter Bootstrap 在 @html.actionlink 中显示 html

如何将我的 DDD 模型中的用户与身份验证用户集成?

GridView 按代码隐藏列

Sys.WebForms.PageRequestManagerServerErrorException:处理服务器上的请求时发生未知错误.