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

2023年 8月 27日 50.6k 0

授权是决定是否允许经过身份验证的用户进行操作的过程
是否对特定资源(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 中的授权属性有什么用?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论