webconfig net auth asp asp.net-core owin-middleware

asp.net-core - auth - login asp net core



ASP.NET Core middleware u OWIN middleware? (2)

Como lo entiendo, ASP.NET Core tiene soporte para middleware OWIN (a través de app.UseOwin() ) además de su propio middleware nativo.

¿Cuál es la diferencia entre el middleware ASP.NET Core y el middleware OWIN?

Al diseñar un nuevo middleware, ¿cómo puedo saber si debo diseñarlo como un middleware ASP.NET Core o un middleware OWIN?


He llegado a entenderlo así. El middleware ASP.NET Core está en un nivel más alto que el middleware OWIN que está en un nivel más bajo.

El middleware ASP.NET Core tiene la ventaja de que es mucho más fácil desarrollar un middleware a medida que se pasa en el HttpContext que puede usar. La desventaja es que el middleware que desarrolle depende de ASP.NET Core.

OWIN está en un nivel inferior y obtienes un entorno OWIN que es un IDictionary<string, object> . La ventaja es que no está vinculado a ASP.NET, por lo que puede ejecutarse en cualquier servidor OWIN (como Nowin). La desventaja es que requiere más esfuerzo para codificar, ya que tiene que crear su propio contexto desde el entorno OWIN o usar el diccionario del entorno OWIN directamente y realizar un seguimiento de todas las llaves y objetos OWIN .

Edición: no tiene que realizar un seguimiento de las claves de OWIN usted mismo, puede utilizar la clase OwinEnvironment para obtener un entorno fuertemente tipado.

var environment = new OwinEnvironment(HttpContext); var features = new OwinFeatureCollection(environment);


Tu pregunta me dio curiosidad y me gustaría compartir, lo que he aprendido hasta ahora.

Katana es la implementación de la especificación OWIN. Después de la versión 3.0 de Katana, esta tecnología se ha integrado completamente en la pila web que hoy conocemos como ASP.NET Core.

Si bien esta transición ha permanecido mucho similar a las especificaciones de OWIN. Aunque se han realizado algunos cambios. Para utilizar el middleware OWIN existente en ASP.NET Core, OWIN es compatible con una función opcional (" app.UseOwin() ").

Si desea apuntar con sus aplicaciones de middleware ASP.NET y aplicaciones básicas de ASP.NET, entonces usaría middleware de OWIN. Si desea darles a los desarrolladores de ASP.NET Core una experiencia ciudadana de primera clase, un middleware ASP.NET Core sería reconocido como más "apropiado".

Aquí puede encontrar información sobre la relación entre el middleware ASP.NET Core y el middleware OWIN: