.NET Core API中的自定义授权筛选器

时间:2019-03-11 12:38:46

标签: asp.net-core .net-core authorization asp.net-authorization core-api

我想在使用核心api访问任何数据之前授权用户,因此我尝试使用JWT身份验证。 我在使用api登录用户时成功生成了令牌,并将该令牌保存在会话中的客户端上,现在,每当用户想要使用api访问任何数据时,我都会将该标头中的令牌发送给api并验证该JWT令牌使用自定义授权过滤器。我已经创建了自定义授权过滤器并将其应用到我的GetMenu api上,并且能够成功验证该令牌,但是在授权过滤器中进行令牌验证后,它没有在我的GetMenu api上命中它。

这是我的AccountController代码:

[Filters.Authorization]
[AllowAnonymous]
[HttpPost]
[Route("GetMenu")]
public IActionResult GetMenu(string clientid, int rolecode, string repcode)
{
    //further process
}

这是我的过滤器。授权码:

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

我在OnAuthorization方法和GetMenu api上都有断点。 我正在通过邮递员调用我的GetMenu api进行测试,它已成功在Filters.Authorization中的OnAuthorization方法上命中它,并验证了我的JWT令牌,并在邮递员中显示了状态代码:200,但在成功验证令牌后,应在GetMenu api上进行进一步的打击数据处理,但没有成功。 可能是什么问题?我想念什么?请帮忙。

0 个答案:

没有答案