C# Asp.Net Web API 中 Authorize 屬性有什麼作用?
授權是確定已認證的使用者是否允許對特定資源(Web API 資源)執行操作的過程。例如,擁有獲取資料和釋出資料的許可權是授權的一部分。授權過程發生在執行控制器操作方法之前,這使您能夠靈活地決定是否要授予對該資源的訪問許可權。
在 ASP.NET Web API 中,授權是透過使用授權過濾器實現的,這些過濾器將在執行控制器操作方法之前執行。Web API 提供了一個內建的授權過濾器 AuthorizeAttribute。此過濾器檢查使用者是否已透過身份驗證。如果沒有,它將返回 HTTP 狀態程式碼 401(未授權),而不會呼叫操作。
我們可以在全域性、控制器級別或單個操作級別應用過濾器。
全域性
要限制對每個 Web API 控制器的訪問,請將 AuthorizeAttribute 過濾器新增到全域性過濾器列表中。
public static void Register(HttpConfiguration config){
config.Filters.Add(new AuthorizeAttribute());
}控制器
要限制對特定控制器的訪問,請將過濾器作為屬性新增到控制器。
// 要求對控制器上的所有操作進行授權 [Authorize]
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();
}
}
}由於我們在操作方法上添加了 authorize 屬性,因此應使用適當的授權(如 bearer 令牌、API 金鑰、OAuth 等)來訪問操作方法。未經授權的訪問將導致 **401 未授權** 響應,如下所示。

廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP