はじめに
前回は、PHPによるWindows Azureアプリケーション開発について解説しました。シリーズ最終回となる今回は、Windows AzureでASP.NETのメンバーシップ機能を使用する方法について解説します。サンプルとして、Windows Azure上で動作するユーザー認証の機能を持ったWebアプリケーションを作成してみましょう。
対象読者
- クラウド技術に興味がある方
- Windows Azureに興味がある方
- Windows Azureアプリケーション開発に興味がある方
Windows AzureでのASP.NETメンバーシップ機能の使用方法
ASP.NETでユーザー認証やロール管理などを必要とするWebアプリケーションを作成する場合、ASP.NETのメンバーシップ機能やログインコントロールを使用することで効率よく開発することができます。
通常のASP.NETでメンバーシップ機能を使用する場合、既定ではローカル環境のSQL Server Expressにデータを格納します。しかし、ローカルの開発環境は別として、クラウド上のWindows AzureではSQL Server Expressを使用できませんので、ASP.NETのメンバーシップ機能やログインコントロールを使用したい場合、どこか別の場所にデータを格納する必要があります。
このために使用できるのが、AspProvidersプロジェクトのライブラリです。AspProvidersプロジェクトとは、C#で書かれたマネージライブラリで、データの格納先としてWindows Azureストレージを使用するメンバーシップ関連のカスタムプロバイダーとして実装されています。
AspProvidersプロジェクトに含まれる主なクラスを、表1にまとめてみます。
クラス | 説明 |
BlobProvider | ブロブ操作のためのクラス |
Configuration | ストレージアカウントなどの各種設定用クラス |
SecUtility | セキュリティ関連ユーティリティクラス |
TableStorageMembershipProvider | MembershipProviderから派生したWindows Azureストレージ用カスタムメンバーシッププロバイダー |
TableStorageProfileProvider | ProfileProviderから派生したWindows Azureストレージ用カスタムプロファイルプロバイダー |
TableStorageRoleProvider | RoleProviderから派生したWindows Azureストレージ用カスタムロールプロバイダー |
TableStorageSessionStateProvider | SessionStateStoreProviderBaseから派生したWindows Azureストレージ用セッション状態ストアプロバイダー |
注意点として、本稿執筆時点では、AspProvidersプロジェクトはあくまでサンプルという位置づけになっています。Windows Azure SDKの正式なWindows Azureマネージライブラリに含められているわけではありません。同じく以前はサンプル扱いだったストレージ操作のためのStorageClientプロジェクトが、変更が加えられた形で、正式にWindows AzureマネージライブラリのMicrosoft.WindowsAzure.StorageClient名前空間として含められたように、将来的にはAspProvidersプロジェクトも正式なライブラリに含められるかもしれません。いずれにしても、現時点でのAspProvidersプロジェクトを実際の業務などで使用する場合には、くれぐれも注意してください。
Windows AzureでASP.NETのメンバーシップ機能を使用する別の方法として、SQL Azureをデータストアとして使用する方法もあります。
SQL Serverでメンバーシップ機能のためのデータベースを作成する「ASP.NET SQL Server登録ツール(Aspnet_regsql.exe)」を、SQL Azureで実行するとエラーが生じます。そのため、SQL Azure専用のSQLスクリプトが別途用意されています。
詳細や具体的な手順については、マイクロソフトサポートオンラインの「Updated ASP.net scripts for use with Microsoft SQL Azure」(英文)を参照してください。