》》》Identity是集成到Owin框架中中
● Microsoft.AspNet.Identity.Core:Identity的核心类库,实现了身份验证的核心功能,并提供了拓展接口。
● Microsoft.AspNet.Identity.EntityFramework:Identity数据持久化的EF实现。
● Microsoft.AspNet.Identity.OWIN:基于Identity的OWIN身份验证插件,它代替了原有的Form验证。
● Microsoft.Owin.Host.SystemWeb:Owin的IIS宿主,将IIS的接收到的请求转入Owin处理。
Owin
Owin(Open Web Server Interface)它是一个.NET Web服务器和Web程序之间的接口标准,
因为.NET Web应用程序是运行于Web服务器之中的。.NET Web应用程序需要通过Web服务器接收用户的请求,并且通过Web服务器将响应内容发送用户。如果没有这样一个接口,.NET Web应用程序就要依赖于所运行的具体Web服务器,比如ASP.NET应用程序要依赖于IIS。有了这个接口,ASP.NET应用程序只需依赖这个抽象接口,不用关心所运行的Web服务器。其思想使这个独立出来的抽象层能够使ASP.NET技术堆栈有更大的创新,使托管ASP.NET应用程序的环境有更多的灵活性,并可以是轻量级的服务器架构。
其目的是为了应用程序与服务器解耦。为什么需要解耦?因为ASP.NET应用(不包含ASP.NET Core和mono)都需要部署在IIS服务器上,而通过实现Owin的接口,可以将一个控制台程序作为Web应用程序的宿主。
所以,OWIN的作用就是通过引入一组抽象接口,解耦了.NET Web应用程序与Web服务器,再次体现了接口的重要性。在软件开发中,每次解耦都是一次很大的进步。
在IIS中 托管 owin 》》》Microsoft.Owin.Host.SystemWeb
在控制台应用程序托管 》》》Microsoft.Owin.SelfHost
控制台托管 WebAPI 》》》Microsoft.AspNet.WebApi.OwinSelfHost