首页  >  文章  >  后端开发  >  C# Asp.Net webAPI 中的授权属性有什么用?

C# Asp.Net webAPI 中的授权属性有什么用?

王林
王林转载
2023-08-25 23:37:081348浏览

授权是决定是否允许经过身份验证的用户进行操作的过程 是否对特定资源(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删除