如何在不使用Authorize属性的情况下获取User.Identity值?

时间:2019-02-04 20:12:39

标签: .net authentication asp.net-core .net-core asp.net-apicontroller

我正在开发使用JwtBearer进行身份验证的api。当我尝试像这样使用User.Identity时;

    [HttpGet]
    public IActionResult Detail(int id)
    {
       if(User.Identity.IsAuthenticated)
       {
          return ...
       }
       else
       {
          return ..
       }
    }

用户不包含令牌/用户数据,并且User.Identity.IsAuthenticated始终返回false。但是如果我加

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]

这将获取用户数据,但我希望未经身份验证的用户也可以访问。

没有授权过滤器怎么办?

1 个答案:

答案 0 :(得分:1)

如果您要允许未经身份验证的用户,还请添加[AllowAnonymous]属性。您必须具有[Authorize]属性才能建立用户主体。