授权是决定是否允许经过身份验证的用户进行操作的过程 是否对特定资源(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中文网其他相关文章!