ASP.NET Core 2.1中基于角色的授权
授權是來描述用戶能夠做什么的過程。例如,只允許管理員用戶可以在電腦上進行軟件的安裝以及卸載。而非管理員用戶只能使用軟件而不能進行軟件的安裝以及卸載。它是獨立的而又與驗證配合使用,需要身份驗證機制。對于應用程序來說,首先需要進行身份驗證,然后進行進行授權。
作者:依樂祝
原文鏈接:https://www.cnblogs.com/yilezhu/p/9508267.html
Identity是一個會員資格系統(tǒng),它允許我們將登錄功能添加到我們的應用程序中,身份可能屬于一個或多個角色。例如,“User1”屬于“Admin”角色,“User2”屬于“HR”的角色。
我們可以在我們的MVC或者Web API應用程序中的控制器上使用AuthorizeFilter特性來控制用戶的訪問。基于角色的授權可以檢查登陸的用戶是否有訪問頁面的權限。這里開發(fā)人員可以在他們的代碼中加入角色。
下面我們使用一個例子來進行說明,我們將創(chuàng)建三個角色,對應的我們將建立三個用戶。代碼如下:
我們可以使用Authorize屬性的Roles屬性指定有權訪問所請求資源的角色。例如,以下代碼允許分配了“Admin”角色用戶進行訪問的操作方法。
我們可以使用英文的逗號分割的角色列表來允許多個角色訪問的方法。例如,在以下代碼段中,操作方法只能由“Admin”或“User”角色的用戶訪問。
我們也可以使用如下的代碼來進行多角色的訪問控制
基于策略的角色檢查
我們還可以創(chuàng)建基于策略的訪問控制。我們可以使用授權服務進行策略的添加以及注冊。在下面的代碼中,我們創(chuàng)建了一個只允許具有“Admin”角色的用戶才能進行訪問的策略。
我們可以使用Authorize 特性的“Policy ”屬性進行策略的應用
使用這種策略方法我們也可以在Razor頁面中應用基于角色的授權。例如,如果我們有一個"Test1.cshtml"的Razor頁面,而且這個頁面只允許具有"Admin"角色的用戶訪問,我們就可以使用下面的代碼進行Razor頁面的授權訪問控制。
總結
本文是對https://www.c-sharpcorner.com/article/role-base-authorization-in-asp-net-core-2-1/ 這篇文章的翻譯,講述了ASP.NET Core 2.1中基于角色的授權,內容都很簡單,淺顯易懂!
原文地址:?https://www.cnblogs.com/yilezhu/p/9508267.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的ASP.NET Core 2.1中基于角色的授权的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 7.0中的解构功能---Decon
- 下一篇: asp.net core 外部认证多站点