先日、Blog.razorに認証通過時と未通過時の表示内容を追加しましたが、未通過時の内容がすべて同じであれば、各コンポーネントで毎回記述するのは時間の無駄です。そこでApp.razorを利用して統一表示を行うことができます。
まず、Blog.razorからコンテンツを包んでいた<AuthorizeView>を削除し、<NotAuthorized>の部分を切り取ります。さらに@attribute [Authorize]という行を追加して、このコンポーネントが認証を必要とすることをBlazorに知らせます。

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

現在は認証通過ユーザーはすべて同じコンポーネントを閲覧できますが、多くのシステムでは通常、ロールや権限によってユーザーを区別します。明日はRoleを使って認可を区別する方法を試してみます。
注:本記事のコードは .NET 6 + Visual Studio 2022 で再構成されています。原文リンクと再構成後のコードを比較しながらご覧いただけます。ご一読いただきありがとうございます。原著者をサポートしてください。