第 7 部:メンバーシップと承認

作成者: Jon Galloway

MVC ミュージック ストアは、web 開発に MVC と Visual Studio ASP.NET 使用する手順を紹介し、説明するチュートリアル アプリケーションです。

MVC ミュージック ストアは、音楽アルバムをオンラインで販売し、基本的なサイト管理、ユーザー サインイン、ショッピング カート機能を実装する軽量のサンプル ストア実装です。

このチュートリアル シリーズでは、ASP.NET MVC Music Store サンプル アプリケーションをビルドするために実行されるすべての手順について詳しく説明します。 パート 7 では、メンバーシップと承認について説明します。

現在、Store Manager コントローラーには、サイトを訪れるすべてのユーザーがアクセスできます。 これを変更して、サイト管理者へのアクセス許可を制限しましょう。

AccountController とビューの追加

完全な ASP.NET MVC 3 Web アプリケーション テンプレートと ASP.NET MVC 3 空の Web アプリケーション テンプレートの違いの 1 つは、空のテンプレートにアカウント コントローラーが含まれていない点です。 完全な ASP.NET MVC 3 Web アプリケーション テンプレートから作成された新しい ASP.NET MVC アプリケーションからいくつかのファイルをコピーして、アカウント コントローラーを追加します。

完全な ASP.NET MVC 3 Web アプリケーション テンプレートを使用して新しい ASP.NET MVC アプリケーションを作成し、次のファイルをプロジェクト内の同じディレクトリにコピーします。

  1. Controllers ディレクトリで AccountController.cs をコピーする
  2. Models ディレクトリ内の AccountModels をコピーする
  3. Views ディレクトリ内にアカウント ディレクトリを作成し、 の 4 つのビューをすべてコピーします

Controller クラスと Model クラスの名前空間を変更して、MvcMusicStore で始めます。 AccountController クラスは MvcMusicStore.Controllers 名前空間を使用し、AccountModels クラスは MvcMusicStore.Models 名前空間を使用する必要があります。

注: これらのファイルは、チュートリアルの冒頭でサイト デザイン ファイルをコピーしたMvcMusicStore-Assets.zipダウンロードでも使用できます。 メンバーシップ ファイルは Code ディレクトリにあります。

更新されたソリューションは次のようになります。

アカウント コントローラーのドット C S、アカウント モデルのドット CS、および /Account /フォルダー内のファイルが強調表示されている [ソリューション エクスプローラー] ペインのスクリーンショット。

ASP.NET 構成サイトでの管理ユーザーの追加

Web サイトで承認が必要になる前に、アクセス権を持つユーザーを作成する必要があります。 ユーザーを作成する最も簡単な方法は、組み込みの ASP.NET 構成 Web サイトを使用することです。

ソリューション エクスプローラーのアイコンをクリックして、ASP.NET 構成 Web サイトを起動します。

地球儀とハンマー アイコンが赤い四角形で強調表示されているソリューション エクスプローラー ウィンドウのスクリーンショット。

これにより、構成 Web サイトが起動します。 ホーム画面の [セキュリティ] タブをクリックし、画面の中央にある [ロールを有効にする] リンクをクリックします。

[ロール] セクションと [ロールの有効化] リンクが赤い四角形で強調表示されている構成 Web サイトのスクリーンショット。

[ロールの作成または管理] リンクをクリックします。

[ロール] セクションと[ロールの作成または管理] リンクが赤い四角形で強調表示されている構成 Web サイトのスクリーンショット。

ロール名として「Administrator」と入力し、[ロールの追加] ボタンを押します。

[新しいロール名] フィールドの [管理者] を示す構成ウィンドウのスクリーンショット。赤い矢印が強調表示されています。

[戻る] ボタンをクリックし、左側の [ユーザーの作成] リンクをクリックします。

[ユーザー] セクションと [Create user]\(ユーザーの作成\) リンクが赤い四角形で強調表示されている構成 Web サイトのスクリーンショット。

次の情報を使用して、左側のユーザー情報フィールドに入力します。

フィールド Value
ユーザー名 管理者
パスワード password123!
[パスワードの確認入力] password123!
電子メール (任意のメール アドレスが機能します)
セキュリティの質問 (好きなものは何でも)
セキュリティ返答 (好きなものは何でも)

注: もちろん、任意のパスワードを使用できます。 既定のパスワード セキュリティ設定では、7 文字の長さと英数字以外の 1 文字を含むパスワードが必要です。

このユーザーの管理者ロールを選択し、[ユーザーの作成] ボタンをクリックします。

[管理者ロール] チェック ボックスがオンになり、赤い四角形で強調表示されている [ロール] セクションを示す構成 Web サイトのスクリーンショット。

この時点で、ユーザーが正常に作成されたことを示すメッセージが表示されます。

ユーザー アカウントの作成が正常に完了したことを示す構成 Web サイトのスクリーンショット。

ブラウザー ウィンドウを閉じることができるようになりました。

ロールベースの承認

これで、[Authorize] 属性を使用して StoreManagerController へのアクセスを制限し、ユーザーがクラス内のコントローラー アクションにアクセスするには管理者ロールに属している必要があることを指定できます。

[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
    // Controller code here
}

注: [Authorize] 属性は、Controller クラス レベルだけでなく、特定のアクション メソッドにも配置できます。

次に、/StoreManager を参照すると、[ログオン] ダイアログが表示されます。

ユーザー名とパスワードのテキスト フィールドを含むログオン ダイアログを示すミュージック ストア Web ページのスクリーンショット。

新しい管理者アカウントでログオンすると、以前と同様にアルバムの編集画面に移動できます。