本篇範例程式,展示如何使用自定義的 OperationPermission,進行View層級身分授權(沒權限看不到按鈕)、進行Action層級身分授權(沒權限跳至302 Access Denied)。
範例原碼:https://github.com/Clark159/CLK.AspNetCoreLab
範例專案:OperationPermissionLab
測試步驟:
1. 權限設定於 MockOperationPermissionRepository.cs。
2. 執行OperationPermissionLab專案
3. 於Account.Login頁面點擊Login:Clark按鈕,以Clark身分登入。(Clark擁有:Home.Add、Home.Remove、Home.Update授權)
4. 於Home.Index頁面,可以看到按鈕:Home.Add、Home.Remove、Home.Update。(View層級身分授權)
5. 依次點選按鈕,允許進入各自的頁面:Home.Add、Home.Remove、Home.Update。(Action層級身分授權)
6. 於Home.Index頁面,點擊登出按鈕,回到Account.Login頁面。
7. 於Account.Login頁面點擊Login:Jane按鈕,以Jane身分登入。(Jane擁有:Home.Add授權)
8. 於Home.Index頁面,可以看到按鈕:Home.Add。(View層級身分授權、Home.Update是特地留下來測試用)
9. 點選Home.Add按鈕,允許進入Home.Add頁面。(Action層級身分授權)
10. 點選Home.Update按鈕,不允許進入Home.Update頁面,並跳轉至302 Access Denied。(Action層級身分授權)
參考資料:
1. [ASP.NET Core 认证与授权7动态授权-雨夜朦朧](https://www.cnblogs.com/RainingNight/tag/Authorization/)
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。