SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ASP.NET Identity入門

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

ASP.NET Identity入門 第14回

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

 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パッケージへの依存はありません。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
DI用サービス登録

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ASP.NET Identity入門連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

<個人紹介>新潟県長岡市在住の在宅リモートワークプログラマー。家事や育児、仕事の合間に長岡IT開発者勉強会(NDS)、Niigata.NET、TDDBCなどのコミュニティに関わったり、Web記事や書籍などの執筆を行ったりしている。著書に『アプリを作ろう! Visual C#入門 Visual C# 2017対応』(日経BP社、2017)など。<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8966 2015/10/08 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング