授權是決定是否允許經過身份驗證的使用者進行操作的過程 是否對特定資源(Web API 資源)執行操作。例如, 擁有獲取資料和發布資料的權限是授權的一部分。這 授權過程發生在執行控制器操作方法之前 讓您可以靈活地決定我們是否要授予對該資源的存取權限 或不。
在 ASP.NET Web API 中,授權是透過使用授權過濾器來實現的 它將在控制器操作方法執行之前執行。網路應用程式介面 提供內建的授權過濾器AuthorizeAttribute。此過濾器檢查 用戶是否經過身份驗證。如果不是,則傳回 HTTP 狀態代碼 401 (未經授權),無需調用操作。
我們可以在全域、控制器層級或個人層級套用篩選器 操作。
要限制每個 Web API 控制器的訪問,請將 AuthorizeAttribute 過濾器新增至 全域過濾器列表。
public static void Register(HttpConfiguration config){ config.Filters.Add(new AuthorizeAttribute()); }
要限制對特定控制器的訪問,請將篩選器作為屬性新增至 控制器。
//控制器上的所有操作都需要授權。 [授權]
public class StudentsController: ApiController{ public HttpResponseMessage Get(int id) { ... } public HttpResponseMessage Post() { ... } }
要限制對特定操作的訪問,請將該屬性新增至操作方法。
public class StudentsController : ApiController{ public HttpResponseMessage Get() { ... } // Require authorization for a specific action. [Authorize] public HttpResponseMessage Post() { ... } }
using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ [Authorize] public IHttpActionResult Get(){ return Ok(); } } }
由於我們在操作方法上新增了授權屬性,因此應使用適當的授權(如不記名令牌、API 金鑰、OAuth 等)來存取操作方法。未經授權的存取將導致如下所示的 401 Unauthorized 回應。
以上是C# Asp.Net webAPI 中的授權屬性有什麼用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!