マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • セルフホストやOWINミドルウェアを使用するために、パイプラインをOWIN化すること。
  • 既存のWebアプリケーションは、IIS(System.Web)を使用しているため、
    IISでホストするためのMicrosoft.Owin.Host.SystemWeb?を使用することになる。

ホスティング ランタイム

IIS

  • IIS でホストするには、Microsoft.Owin.Host.SystemWeb?を使用する。
  • NuGet で「Microsoft.Owin.Host.SystemWeb?」をインストール。
    Install-package Microsoft.Owin.Host.SystemWeb
  • 必要に応じて、以下もインストールする。
    Install-Package Microsoft.Owin.ja
    Install-Package Microsoft.Owin.Host.SystemWeb.ja
  • System.WebのパイプラインをOWINのパイプラインに流すことができる。
  • これにより、OWINのミドルウェアをASP.NET Web Formsや、MVC 5でも使用できる。

OwinHost?.exe

  • Katana の OwinHost?.exe でホストするには、OwinHost?を使用する。
  • NuGet で「OwinHost?」をインストール。
    install-package OwinHost

OWINミドルウェアのインストール

ASP.NET Identity

NuGet で「AspNet?.Identity」をインストール。

Install-Package Microsoft.AspNet.Identity.Owin
Install-Package Microsoft.AspNet.Identity.EntityFramework
Update-Package

Microsoft.AspNet?.Identity.EntityFramework?は、
UserStore?クラスを自前で実装する場合、不要になる。

ASP.NET SignalR

NuGet で「SignalR」をインストール。

Install-Package Microsoft.AspNet.SignalR
Update-Package

ASP.NET Web API

NuGet で「WebApi?.OwinSelfHost?」をインストール。
※ セルフホストの場合

Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
Update-Package

OWIN Startupクラスの追加・登録

OWINパイプラインでミドルウェアをつなげ全体を処理する。

Startupクラスは、

  • ホスティング ランタイムと
  • ミドルウェア

を指定して使用できるようにする。

共通

既存のBundle、Routing等をGlobal.asax.cs から OWIN Startup.cs に移動してもイイが、必要性は無い。

ASP.NET Identity

Startup クラスで ConfigureAuth?(app)メソッドを実行する。

public partial class Startup
{
  public void Configuration(IAppBuilder app)
  {
    ConfigureAuth(app);
    app.MapSignalR();
  }
}

ConfigureAuth?メソッドはテンプレート上、Partialクラスに定義されている。

結構大きめの実装なので割愛

必要に応じて、実際に[認証の変更]→[個人のユーザアカウント]のオプションで
プロジェクトテンプレートを使用してプロジェクトを生成して確認すること。

ASP.NET SignalR

Startup クラスで app.MapSignalR()メソッドを実行する。

public partial class Startup
{
  public void Configuration(IAppBuilder app)
  {
    ConfigureAuth(app);
    app.MapSignalR();
  }
}

ASP.NET Web API

Startup クラスで Routing定義を行いapp.UseWebApi?()メソッドを実行する。
※ セルフホストの場合

public static class Startup
 {
   public static void ConfigureApp(IAppBuilder app)
   {
     // Configure Web API for self-host. 
     HttpConfiguration config = new HttpConfiguration();

     config.Routes.MapHttpRoute(
      name: "DefaultApi",
      routeTemplate: "api/{controller}/{id}",
      defaults: new { id = RouteParameter.Optional }
    );

    app.UseWebApi(config);
  }
}

.NET Frameworkのテンプレートでは、Routing定義は、
Global.aspxのApplication_Startから呼びだされる
RouteConfig?クラスのRegisterRoutes?メソッドで実行されれている。

参考

OWINミドルウェア

手順


Tags: :.NET開発, :OWIN


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-03 (金) 21:41:27 (931d)