【问题标题】:GetOwinContext in ASP.NET5 / MVC6ASP.NET5 / MVC6 中的 GetOwinContext
【发布时间】:2015-11-03 21:29:46
【问题描述】:

在 WebApi 中,我曾经在 BaseApiController 上执行此操作:

Request.GetOwinContext().Response.Headers.Add("X-Pagination", new[] { Newtonsoft.Json.JsonConvert.SerializeObject(paginationHeader) });

我正在转换为 ASP.NET v5,但出现错误:

HttpRequest does not contain a definition for GetOwinContext

任何指针?

【问题讨论】:

  • 我试过了,还是不行。我认为它与 ASP.NET v5 / MVC6 无关?
  • 试试这个。 OwinContext owinContext = (OwinContext)Request.Properties["MS_OwinContext"];
  • 我不应该那样做,对吧?每次我想做GetUserManager 之类的事情时,我都必须转换上下文?
  • 我们为我的 webapi 使用 owin 托管,我没有找到从请求中检索 owin 上下文的简单方法。我们这个“OwinContext owinContext = (OwinContext)Request.Properties["MS_OwinContext"];”。

标签: asp.net asp.net-web-api


【解决方案1】:

ASP.NET 5 不是基于 OWIN,所以不要指望 GetOwinContext() 可以工作。

您的代码可以轻松适应新的HttpResponse 原语:

Response.Headers["X-Pagination"] = JsonConvert.SerializeObject(paginationHeader);

【讨论】:

  • 我不能在 ASP.NET 5 中使用 OWIN 吗?我想要一个轻量级的 api,但是用 V5,这不可能吗?
  • MVC 6 不使用 OWIN。它直接依赖于 ASP.NET 5 公开的新 HttpContext/HttpRequest/HttpResponse 原语。
  • 好吧,那我真的迷路了。这是 OWIN 之路的尽头吗?我认为这是构建 Web 系统的新的、精简的、可组合的方式。我努力让我的系统使用它,现在看来我支持错误的马?
  • 不,仍然通过适配器支持 OWIN,但 ASP.NET 5 不是基于 OWIN。无论如何,在使用 MVC 6 时,您没有理由使用 OWIN。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-23
  • 2016-05-06
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
相关资源
最近更新 更多