httpContext.User.Identity.IsAuthenticated 总是为fasle

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


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

如果密钥没有填对,则对接口有认证的地方进行校验,效验失败则返回如下

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

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

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

填写格式:

Bearer 密钥

我之前填的是Bearer:密钥

其他注意事项

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

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

posted @ 2019-08-06 17:56  天空的湛蓝  阅读(3803)  评论(0编辑  收藏  举报