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

How can i get User.Identity values without using the Authorize attribute?

我正在开发一个使用 JwtBearer 的 api authentication.When 我正在尝试像这样使用 User.Identity;

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

用户不包含 token/user 数据和 User.Identity.IsAuthenticated 总是 return 错误。但是如果我添加

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]

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

如果没有授权过滤器,我怎么能做到这一点?

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