(24/30)みんなでBlazorを学ぼう:<AuthorizeRouteView>の活用

(24/30)みんなでBlazorを学ぼう:<AuthorizeRouteView>の活用

先日、`Blog.razor`に認証成功時と失敗時の表示内容を追加しましたが、システム全体で表示する認証失敗時の内容が同じ場合、全てのComponentで同じように書くのは時間の無駄です。`App.razor`を利用して統一した表示を行うことができます。

最終更新 2021/12/23 22:51
StrayaWorker
読了目安 1 分
カテゴリ
Blazor
テーマ
みんなでBlazorシリーズを学ぼう
タグ
.NET C# ASP.NET Core Blazor

先日、Blog.razorに認証通過時と未通過時の表示内容を追加しましたが、未通過時の内容がすべて同じであれば、各コンポーネントで毎回記述するのは時間の無駄です。そこでApp.razorを利用して統一表示を行うことができます。

まず、Blog.razorからコンテンツを包んでいた<AuthorizeView>を削除し、<NotAuthorized>の部分を切り取ります。さらに@attribute [Authorize]という行を追加して、このコンポーネントが認証を必要とすることをBlazorに知らせます。

次に、App.razorのシングルタグをペアタグに変更し、先ほど切り取った<NotAuthorized>を貼り付けます。これでサイトを起動すると、未認証時に表示される内容が統一されます。

現在は認証通過ユーザーはすべて同じコンポーネントを閲覧できますが、多くのシステムでは通常、ロールや権限によってユーザーを区別します。明日はRoleを使って認可を区別する方法を試してみます。

注:本記事のコードは .NET 6 + Visual Studio 2022 で再構成されています。原文リンクと再構成後のコードを比較しながらご覧いただけます。ご一読いただきありがとうございます。原著者をサポートしてください。

さらに探索

関連読書

その他の記事
同じカテゴリ / 同じタグ 2021/12/25

(29/30)みんなで学ぶBlazor:Blazor単体テスト

システム開発において最も退屈なプロセスは、おそらくバグ修正です。特に、null オブジェクトにアクセスしようとするエラー(`Object reference not set to an instance of an object.`)は、多くの初心者が最初に直面する問題です。退屈なバグ修正から解放されるために、この記事では「単体テスト」を紹介します。

続きを読む
同じカテゴリ / 同じタグ 2021/12/25

(28/30)みんなで学ぶBlazor:ポリシーベースの認可

以前に「ASP.NET Core Identity」は「Claim」ベースの検証を使用すると述べましたが、実は「ASP.NET Core Identity」には異なる種類の認可方法があります。最も簡単な「ログイン認可」「ロール認可」「Claim認可」ですが、これらはすべて同じ方法で実現されています:原則認可(ポリシーベースの認可)です。

続きを読む