Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

ASP.NET 5に向けて知っておきたい、最新のASP.NET Identityのポイント

ASP.NET Identity入門 第14回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/10/08 14:00

 Visual Studio 2015がリリースされ、ASP.NET 5のプレビュー版が試せるようになりました。ASP.NET IdentityもASP.NET 5に向けて変更が入りました。今回はASP.NET 5プロジェクトにおける最新のASP.NET Identityについて、そのポイントを紹介していきます。

目次

ASP.NET 5とは

 2015年7月20日にリリースされた最新のVisual Studio 2015には、「ASP.NET 5」のプレビュー版のプロジェクトを作成できる機能が搭載されています。

 ASP.NET 5とは主に次のような機能を持ち、従来のASP.NETとは別に新たにオープンソースで開発が進められています。

クロスプラットフォーム

 Windowsに限らず、LinuxやMac OS X上でもMonoや.NET Coreを使って動作する。

IISに依存しない

 OWINの概念をもとに新たに実装したミドルウェア、パイプライン処理で処理を行う。

サービス単位のDI

 標準で「サービス」という単位でDI(Dependency Injection、依存性の注入)を行う機能を搭載する。

非同期

 すべての処理がasync/awaitを活用した非同期処理として行われる。

 詳しくは参考資料1)、2)などを参考にしてください。なお、あくまでプレビュー版であるため、まだまだ今後変更される可能性があります。最新情報はGitHub上の各種リポジトリを確認してください。

ASP.NET 5におけるASP.NET Identity

 ASP.NET 5ではASP.NET Identityもバージョン3.0になり、新たに実装しなおされています。バージョン2.xまでのOWINのパイプライン処理をベースとした実装ではなく、ASP.NET 5のパイプライン処理をベースに実装されています。

 この結果、バージョン2.x向けに独自に実装したコードとの互換性が無くなってしまいました。ASP.NET 5でも既存コードを利用したい場合、バージョン3.0向けに再実装する必要があります。ただ、主要なAPIはそれほど変更されていないため、移植は比較的容易に行えます。

 なお、ASP.NET 5向けのASP.NET Identityは、ASP.NET 5本体と同様にGitHub上にてオープンソースで開発が進められています。最新コードはGitHubのリポジトリを参照してください。なお、ASP.NET 5はあくまでプレビュー版であり、正式リリース時には変更される可能性があることはご了承ください。

 それでは、ASP.NET 5におけるASP.NET Identity利用のポイントを、VS2015で作成したASP.NET 5のプレビュープロジェクトを使って説明していきましょう。

使用するNuGetパッケージ

 まずは、ASP.NET Identityを利用するのに必要なNuGetパッケージを見ていきましょう。使用しているNuGetパッケージは、project.jsonファイルの"dependencies"キーの値を確認します(リスト1)。

リスト1 ASP.NET Identity関連のNuGetパッケージ(project.jsonより)
{
  ...(略)...
  "dependencies": {
    "EntityFramework.SqlServer": "7.0.0-beta5",
    "EntityFramework.Commands": "7.0.0-beta5",
    "Microsoft.AspNet.Mvc": "6.0.0-beta5",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta5",
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta5",
    "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta5",
    "Microsoft.AspNet.Authentication.Google": "1.0.0-beta5",
    "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta5",
    "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta5",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta5",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta5",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta5",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta5",
    "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta5",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta5",
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta5",
    "Microsoft.Framework.Logging": "1.0.0-beta5",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta5",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta5"
  },
  ...(略)...
}

 ASP.NET Identityを利用するのに必要な主なパッケージは、以下の2つです。

Microsoft.AspNet.Authentication.Cookie

 Cookie認証を行うためのNuGetパッケージで、.NET 4.5までのMicrosoft.Owin.Security.Cookiesに対応します。

Microsoft.AspNet.Identity.EntityFramework

 EFを用いたユーザー管理を行うためのNuGetパッケージです。

 なお、NuGetパッケージの依存関係により、以下のパッケージも併せてインストールされます。

Microsoft.AspNet.Identity

 ASP.NET Identityのコアとなる各種インターフェースなどを扱うNuGetパッケージです。バージョンは3.0.0-beta5で、2.xまでのようにOwinパッケージへの依存はありません。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 高野 将(タカノ ショウ)

    <個人紹介> 新潟県長岡市在住の在宅リモートワークプログラマー。家事や育児、仕事の合間に長岡IT開発者勉強会(NDS)、Niigata.NET、TDDBCなどのコミュニティに関わったり、Web記事や書籍などの執筆を行ったりしている。著書に『アプリを作ろう! Visual C#入門 Visual C...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:ASP.NET Identity入門

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5