验证一直通不过,不知道问题在哪里。这个坑应该只有我自己遇到,记录一下,问题在使用swagger验证的时候出现的(说的很轻松)

httpContext.User.Identity.IsAuthenticated 总是为fasle
如图所示,在swaager文档中,添加认证功能,此时只要我们填下登陆时获取的token,便能访问到其他接口。如下图填写密钥

httpContext.User.Identity.IsAuthenticated 总是为fasle

如果密钥没有填对,则对接口有认证的地方进行校验,效验失败则返回如下
httpContext.User.Identity.IsAuthenticated 总是为fasle

刚开始不知道验证失败的原因在哪里。一直在查阅认证与授权的资料。

尝试了其他项目,发现都是正常的。(此时头有点大,但不能放弃)

最后使用了postMan进行调用,发现ok啊。此时联想到swagger密钥填写问题。一切ok。

填写格式:

Bearer 密钥

我之前填的是Bearer:密钥

其他注意事项

  1. 在登陆过程中时候,即使调用了HttpContext.SignInAsync() 方法,通过调试httpContext.AuthenticateAsync() 是获取不到用户登陆任何信息的。必须经历一个完整的页面请求过程。不然也是返回false。

  2. Configrue必须添加 app.UseAuthentication(); 不然也总是返回false。

相关文章:

  • 2022-01-18
  • 2021-08-31
  • 2022-12-23
  • 2021-10-01
  • 2021-07-24
  • 2022-01-17
  • 2021-11-24
  • 2021-05-18
猜你喜欢
  • 2021-11-29
  • 2022-12-23
  • 2022-02-23
  • 2022-12-23
  • 2021-07-16
  • 2022-12-23
  • 2021-08-04
相关资源
相似解决方案