第 7 部:メンバーシップと承認
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 アプリケーションを作成し、次のファイルをプロジェクト内の同じディレクトリにコピーします。
- Controllers ディレクトリで AccountController.cs をコピーする
- Models ディレクトリ内の AccountModels をコピーする
- Views ディレクトリ内にアカウント ディレクトリを作成し、 の 4 つのビューをすべてコピーします
Controller クラスと Model クラスの名前空間を変更して、MvcMusicStore で始めます。 AccountController クラスは MvcMusicStore.Controllers 名前空間を使用し、AccountModels クラスは MvcMusicStore.Models 名前空間を使用する必要があります。
注: これらのファイルは、チュートリアルの冒頭でサイト デザイン ファイルをコピーしたMvcMusicStore-Assets.zipダウンロードでも使用できます。 メンバーシップ ファイルは Code ディレクトリにあります。
更新されたソリューションは次のようになります。
ASP.NET 構成サイトでの管理ユーザーの追加
Web サイトで承認が必要になる前に、アクセス権を持つユーザーを作成する必要があります。 ユーザーを作成する最も簡単な方法は、組み込みの ASP.NET 構成 Web サイトを使用することです。
ソリューション エクスプローラーのアイコンをクリックして、ASP.NET 構成 Web サイトを起動します。
これにより、構成 Web サイトが起動します。 ホーム画面の [セキュリティ] タブをクリックし、画面の中央にある [ロールを有効にする] リンクをクリックします。
[ロールの作成または管理] リンクをクリックします。
ロール名として「Administrator」と入力し、[ロールの追加] ボタンを押します。
[戻る] ボタンをクリックし、左側の [ユーザーの作成] リンクをクリックします。
次の情報を使用して、左側のユーザー情報フィールドに入力します。
フィールド | Value |
---|---|
ユーザー名 | 管理者 |
パスワード | password123! |
[パスワードの確認入力] | password123! |
電子メール | (任意のメール アドレスが機能します) |
セキュリティの質問 | (好きなものは何でも) |
セキュリティ返答 | (好きなものは何でも) |
注: もちろん、任意のパスワードを使用できます。 既定のパスワード セキュリティ設定では、7 文字の長さと英数字以外の 1 文字を含むパスワードが必要です。
このユーザーの管理者ロールを選択し、[ユーザーの作成] ボタンをクリックします。
この時点で、ユーザーが正常に作成されたことを示すメッセージが表示されます。
ブラウザー ウィンドウを閉じることができるようになりました。
ロールベースの承認
これで、[Authorize] 属性を使用して StoreManagerController へのアクセスを制限し、ユーザーがクラス内のコントローラー アクションにアクセスするには管理者ロールに属している必要があることを指定できます。
[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
// Controller code here
}
注: [Authorize] 属性は、Controller クラス レベルだけでなく、特定のアクション メソッドにも配置できます。
次に、/StoreManager を参照すると、[ログオン] ダイアログが表示されます。
新しい管理者アカウントでログオンすると、以前と同様にアルバムの編集画面に移動できます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示