- 追加された行はこの色です。
- 削除された行はこの色です。
[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>ASP.NET]]
* 目次 [#ob1efb64]
#contents
*概要 [#g0f9dd7b]
OWIN(Open Web Interface for .NET)
-.NETのWebサーバとWebアプリケーション接続するためのインタフェース。
-新しい HTTP Server のプログラミング抽象化レイヤーを定義する。
-OWIN 統合により、One ASP.NET の Pluggable を促進する。
-OWINのリファレンス実装は「Katanaプロジェクト」。
*Startup.cs [#n017a299]
-OWINのパイプラインを使用できる。
-ASP.NET IdentityなどはOwin.Securityを使用している。
-特に、ソーシャルログインを行う場合、OWINで提供されるライブラリを使用する必要がある。
**経緯 [#s2fe2e19]
昨今、色々と技術的な変化が早いため、
-MVC 1-5 は.NET Frameworkのサイクルから外れ、
-また、System.Web(≒ IIS)からの脱却が必要になってきて、
**参考 [#tef95456]
-Understanding ASP NET 5 Application Startup File Startup.cs in Visual Studio 2015 - YouTube~
https://www.youtube.com/watch?v=oK1M2lLEU0M
OWINが登場した。
-asp.net mvc - What is the new Startup.cs file for in Visual Studio 2013 projects? - Stack Overflow~
http://stackoverflow.com/questions/20034105/what-is-the-new-startup-cs-file-for-in-visual-studio-2013-projects
**目標 [#maa57f07]
-OWINの目標&達成したこと。
*ASP.NET Identity [#x8cab528]
--System.Web(≒ IIS)から脱却し、性能の向上を可能にした。
--.NET Frameworkのサイクルから外れた早いリリースを可能にした。
**参考 [#g286301f]
-ASP.NET Identity入門連載一覧:CodeZine(コードジン)~
https://codezine.jp/article/corner/511
--「ASP.NET Identity」の登場背景と実際の使い方~
https://codezine.jp/article/detail/7709
--・・・
-これらは、[[ASP.NET Core]]に引き継がれ役立っている。
-Series: Owin Authentication « Passion for Coding~
https://coding.abel.nu/series/owin-authentication/
--What’s this Owin Stuff About?
--ASP.NET Identity and Owin Overview
--Understanding the Owin External Authentication Pipeline
--Writing an Owin Authentication Middleware
--Using Owin External Login without ASP.NET Identity
**主要なデータ構造 [#z3da880d]
***environment dictionary [#ac5fcdac]
-HTTPContextから脱却し、環境を保持する environment dictionary。
-HTTP request and response を処理するのに必要なデータは保持される。
-THE TRUTH IS OUT THERE
--ASP.NET MVC で OAuth/OpenID (Facebook, Twitter, Google, Microsoft) を使う
https://blogs.msdn.microsoft.com/chack/2012/11/19/asp-net-mvc-oauthopenid-facebook-twitter-google-microsoft/
--Visual Studio 2012 と ASP.NET で Facebook アプリを作る~
https://blogs.msdn.microsoft.com/chack/2012/12/24/visual-studio-2012-asp-net-facebook/
IDictionary<string, object>
***application delegate [#z5026963]
コンポーネントの間は下記の function signature で呼ばれる。
Func<IDictionary<string, object>, Task>;
**[[OWIN]]ミドルウェア [#c666e4bd]
以下の様な、[[OWIN]]ミドルウェアが存在する。
***[[ASP.NET Identity]] [#x8cab528]
***[[ASP.NET SignalR]] [#x8cab528]
***[[ASP.NET Web API>ASP.NET Web API#rabd29db]] [#n4d2e2af]
***[[OWIN]]ミドルウェア作成 [#o8b46ad1]
この「ミドルウェア」を自作すればパイプライン上で挙動をカスタマイズできる。
-neue cc - OWINのパイプラインとMiddleware作成ガイド~
http://neue.cc/2014/01/06_442.html
-neue cc - OWINの仕組みとOWIN上のフレームワーク(ミドルウェア)の作り方~
http://neue.cc/2014/05/13_473.html
-ログイン処理を行うOWINミドルウェアの作成 - Qiita~
http://qiita.com/ken200/items/fea146f0bad9d21fe302
**[[OWIN化手順]] [#q6af4660]
シンプルに
>「セルフホストやOWINミドルウェアを使用するために、パイプラインをOWIN化すること。」
と捉えると良い。
手順については「[[コチラ>OWIN化手順]]」を参照のこと。
*参考 [#o5fab226]
-OWIN - Open Web Interface for .NET を使う — Kyrt Blog~
http://kyrt.in/2013/12/17/owin_azure_cache_session_middleware.html
-【.NET定期勉強会@Sansan完全レポート】第3回~
OWINって何?Microsoft MVPに聞いてみよう!(その1)~
| エンジニア勉強会 | Sansan株式会社 - クラウド名刺管理~
http://jp.corp-sansan.com/news/2014/140929_4597.html
--OWIN って何?~
http://www.slideshare.net/miso_desu/owin-34791501
**OWIN is dead ? [#o8448c24]
以下に「これからは ASP.NET 5。(死に切ってはいないけれど) OWIN is dead!!」とある。
-ASP.NET 5はどうしてOWIN上に乗らなかったのか - xin9le.net~
http://blog.xin9le.net/entry/2015/01/18/161631
今では完全に OWIN と Katana Project は止まっているらしい。~
(ASP.NET 5は、現在は[[ASP.NET Core]]と名称が変更されている。)
***補足 [#c41ff7e1]
OWIN と Katanaの意味が長々明確ではありませんでしたが、
-Katana Project が止まって、
-Katana Project 所有の仕様であるOWINも止まった
ということだったようでしたが、その後、OWIN の仕様は、~
ASP.NET 5、[[ASP.NET Core]]と引き継がれて生きているようです。
-[[ASP.NET Core]]は、OWINをサポートしています。
-[[ASP.NET Core]]アプリケーションとミドルウェアは、~
OWINベースのアプリケーション、サーバ、ミドルウェアと相互運用できます。
ただし、OWINの上で[[ASP.NET Core]]が動くのではなくて、~
[[ASP.NET Core]]自体がOWIN互換レイヤーを実装することでサポートしたようです。
**Microsoft Docs [#dabfa668]
-Open Web Interface for .NET (OWIN)~
https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/owin
-OWIN と Katana~
https://docs.microsoft.com/ja-jp/aspnet/aspnet/overview/owin-and-katana/
--プロジェクトの Katana の概要~
https://docs.microsoft.com/ja-jp/aspnet/aspnet/overview/owin-and-katana/an-overview-of-project-katana
--OWIN と Katana の概要~
https://docs.microsoft.com/ja-jp/aspnet/aspnet/overview/owin-and-katana/getting-started-with-owin-and-katana
----
Tags: [[:.NET開発]], [[:OWIN]]