.NET Core API中的自定义授权过滤器


Frui tenebris、
2025-02-06 06:10:14 (22天前)


我想在使用我的核心API访问任何数据之前授权用户,所以我尝试使用JWT身份验证。
我在使用api登录用户时成功生成了令牌并保存了该令牌……

2 条回复
  1. 0# 真不错 | 2019-08-31 10-32



    你不应该设置

    filterContext.Result

    如果请求成功授权。




    1. //
      // Summary:
      // A context for authorization filters i.e. Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter
      // and Microsoft.AspNetCore.Mvc.Filters.IAsyncAuthorizationFilter implementations.
      public class AuthorizationFilterContext : FilterContext
      {
      //
      // Summary:
      // Gets or sets the result of the request. Setting Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext.Result
      // to a non-null value inside an authorization filter will short-circuit the remainder
      // of the filter pipeline.
      public virtual IActionResult Result { get; set; }
      }

    2. </code>


    你只需要设置

    Result

    当它失败了。




    1. public class Authorization: AuthorizeAttribute, IAuthorizationFilter
      {
      public void OnAuthorization(AuthorizationFilterContext filterContext)
      {
      if (!ValidateToken(filterContext.HttpContext.Request.Headers[“token”]))
      {
      filterContext.Result = new UnauthorizedResult();
      }
      }
      }

    2. </code>

登录 后才能参与评论