将 Owin / Katana 与 ASP.NET Core(实际用例)一起使用是不是仍然相关?

Posted

技术标签:

【中文标题】将 Owin / Katana 与 ASP.NET Core(实际用例)一起使用是不是仍然相关?【英文标题】:Is it still relevant to use Owin / Katana with ASP.NET Core (actual use case)?将 Owin / Katana 与 ASP.NET Core(实际用例)一起使用是否仍然相关? 【发布时间】:2018-06-18 00:08:01 【问题描述】:

根据这里的答案:How to explain Katana and OWIN in simple words and uses?

关于上面的评论,OWIN 不是一个框架。 OWIN 是一个 关于如何构建 Web 服务器和 Web 应用程序的规范 为了将彼此分离并允许 ASP.NET 的移动 应用到当前状态不是的环境 可能。

在 OWIN 之前,当您构建 ASP.NET 应用程序时,您是 由于对 System.Web 的严重依赖,继承地绑定到 IIS 组装。

System.Web 是自 ASP 以来就存在的东西(非 .NET 版本) 并且内部包含许多您甚至可能不需要的东西(例如 作为 Web 表单或 URL 授权),默认情况下在每个 请求,从而消耗资源并制作 ASP.NET 应用程序 一般来说,它比 Node.js 上的同类产品慢很多。

所以 OWIN 本身没有任何工具、库或其他任何东西。它 只是一个规范。

如果 OWIN 只是 Katana 其 .NET 实现的规范,以便 ASP.NET 应用程序不与 IIS 绑定,那么在 ASP.NET Core 应用程序与 Kestrell 和另一个网络服务器(如 nginx)一起工作的情况下(充当反向代理)为什么我们仍然需要 OWIN?

【问题讨论】:

***.com/questions/21308585/… 您可能应该阅读更多内容。 OWIN 演变并作为 ASP.NET Core 的基础。因此,除非您有遗留的 OWIN 中间件可以坚持,否则您不再需要它。 @LexLi 感谢对内部结构了解不多。 When should I use OWIN Katana?的可能重复 【参考方案1】:

ASP.NET Core 是 Microsoft.Owin.* 的演变,微软将其称为 Katana。

Microsoft.Owin.* 库不适用于 .NET Core,因为 ASP.NET Core 有它们的等效替代品。见https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/

【讨论】:

以上是关于将 Owin / Katana 与 ASP.NET Core(实际用例)一起使用是不是仍然相关?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net web api 自托管 / owin / katana

Katana 与 IIS 上的 ASP.NET 5 应用程序有何关系?

OWIN与Katana

OWIN产生的背景以及简单介绍

身份验证/授权 MVC 5 和 Web API - Katana/Owin

OWIN 身份验证管道正确使用 Katana 中间件?