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