前天有在Blog.razor加入通過驗證及未通過的顯示內容,但如果系統要呈現的未通過驗證內容都一樣,在每個 Component 都這樣寫就太浪費時間了,可以利用App.razor幫我們做統一呈現的事。
先把Blog.razor原本包覆內容的<AuthorizeView>刪除,剪下<NotAuthorized>的部分,再加上@attribute [Authorize]這行,告知 Blazor 這個 Component 需要驗證。

再將 App.razor 原本的單標籤 (single tag) 改成配對標籤 (paired tags),貼上剛剛剪下的 <NotAuthorized>,這時候再啟動網站,未驗證情況下看到的內容會一樣。

目前只要通過驗證的使用者都能看到相同 Component,不過大部分系統通常都會有角色或是權限劃分,以區分不同使用者,明天就來嘗試用 Role 區分授權。
註:本文程式碼透過 .NET 6 + Visual Studio 2022 重構,可點擊原文連結與重構後程式碼比較學習,謝謝閱讀,支持原作者