DI用サービス登録
次に標準のDI機能を使い、ASP.NET Identityのサービスを登録します(リスト2)。
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) // (1) { ...(略)... // Add Identity services to the services container. services.AddIdentity<ApplicationUser, IdentityRole>() //(2) .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders(); ...(略)... }
(1)ConfigureServicesメソッドを定義
各種サービスを登録/構成するため、ConfigureServicesメソッドを定義します。引数はMicrosoft.Framework.DependencyInjection.IServiceCollection型のservicesで、このservices引数に対して必要なサービスを登録していきます。
(2)ASP.NET Identityサービスを登録
servicesメソッドのAddIdentity拡張メソッドを呼び出し、ASP.NET Identityのサービスを登録します。登録処理はいわゆる「Fluent API(流れるようなインターフェース)」となっており、登録用メソッドの後に続けて、メソッドチェーンでサービス構成処理を記述します。既定のテンプレートでは、AddEntityFrameworkStoresメソッドでEFを使ったデータストアを登録し、AddDefaultTokenProvidersメソッドで2段階認証に使う確認トークンなど各種トークンの生成を行う既定のプロバイダーを登録しています。
ASP.NET Identityの構成
今度はWebアプリケーションでASP.NET Identityを使うよう構成を行います(リスト3)。
// Configure is called after ConfigureServices is called. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) //(1) { ...(略)... // Add cookie-based authentication to the request pipeline. app.UseIdentity(); //(2) // Add authentication middleware to the request pipeline. You can configure options such as Id and Secret in the ConfigureServices method. // For more information see http://go.microsoft.com/fwlink/?LinkID=532715 // app.UseFacebookAuthentication(); //(3) // app.UseGoogleAuthentication(); // app.UseMicrosoftAccountAuthentication(); // app.UseTwitterAuthentication(); ...(略)... }
(1)Configureメソッドを定義
ASP.NET 5Webアプリケーションの構成を行うためのConfigureメソッドを定義します。引数は次の通りです。
Microsoft.AspNet.Builder.IApplicationBuilder app
ASP.NET 5パイプラインの構成を行うための引数で、OwinのIAppBuilderと同じような働きをします。appオブジェクトに各種のAdd~拡張メソッドを呼び出すことで、静的ファイルへのルーティングやMVCの利用などを行えるようにします。
Microsoft.AspNet.Hosting.IHostingEnvironment env
ASP.NET 5 Webアプリケーションをホストする環境に関する情報を取得するための引数です。開発環境/プロダクション環境を判定などに利用します。
Microsoft.Framework.Logging.ILoggerFactory loggerFactory
ASP.NET 5組み込みのロガーを生成するための引数です。出力先やエラー/警告/情報といった出力ログレベルを指定します。
(2)ASP.NET Identityを使用
app引数のUseIdentity拡張メソッドを呼び出し、ASP.NET Identityを使用するよう設定します。バージョン2.xまでのapp.UseCookieAuthentication拡張メソッドにほぼ対応します。
(3)外部アカウント認証を設定
必要であれば、app.UseFacebookAuthentication拡張メソッド等、各種Use~Authentication拡張メソッドを呼び出すことで、外部アカウントによる認証設定を行います。
以上でASP.NET Identityを使うための設定は終わりました。