首頁 > 後端開發 > C#.Net教程 > C# Asp.Net webAPI 中的授權屬性有什麼用?

C# Asp.Net webAPI 中的授權屬性有什麼用?

王林
發布: 2023-08-25 23:37:08
轉載
1384 人瀏覽過

授權是決定是否允許經過身份驗證的使用者進行操作的過程 是否對特定資源(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 中的授权属性有什么用?

以上是C# Asp.Net webAPI 中的授權屬性有什麼用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板