.net core JWT验证,HttpContext.User为空的问题
2024-09-02 02:18:26
这几天在学习张老师.net core教程JWT部分,链接 https://mp.weixin.qq.com/s/7135y3MkUlPIp-flfwscig
教程使用的.net core 2.2, 在抄代码的时候,我创建的.net core 3.1,所以startup.cs 的Conifg中,app.UseMvc();不再适用,所以我进行了一些修改,参考链接 https://www.cnblogs.com/tianma3798/p/11909293.html
原代码
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
} //app.UseMiddleware<JwtTokenAuth>(); app.UseAuthentication(); app.UseMvc();
}
修改后
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
} app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller}/{action=Index}/{id?}"); }); //app.UseMiddleware<JwtTokenAuth>(); app.UseAuthentication(); //app.UseMvc();
}
然而 Controller中 _accessor.HttpContext.User 和User一直未null,困扰了我好久,也找了很多方法都没解决。
最后找到了这个https://blog.csdn.net/laidanchao/article/details/111179462,说了app.UserAuthtication的顺序问题,试了下果然解决了问题,但也不全对,回到教程,张老师其实有提到
注意1:HTTP管道是有先后顺序的,一定要写在 app.Mvc() 之前,否则不起作用。
然而因为升级到3.1,我把这行注释了,而且没有注意到UserAuthtication的顺序,导致认证失败,最后是吧UserAuthtication放在UseEndpoints前面得以解决问题。
最新文章
- 扩展方法(C#)
- string.empty和null的区别
- 初探Asp.net5
- mysql 大数据量的处理
- hdu 2988 Dark roads
- discuz分类信息地区联动菜单字段
- ADB not responding. You can wait more,or kill"abd.exe" process manually and click 'Restart'
- hdu 4614 pieces 状态DP
- GrepCode
- View绘制详解(四),谝一谝layout过程
- [FTP] FTPClient--FTP操作帮助类,上传下载,文件,目录操作 (转载)
- 微信小程序框架探究和解析
- logback KafkaAppender 写入Kafka队列,集中日志输出.
- Python3 字典
- pyspark如何遍历broadcast
- css3新特性合集
- 20175209 《Java程序设计》第六周学习总结
- Linux:Debian系统的安装
- Allegro PCB Design GXL (legacy) 元器件的坐标文件
- DOM元素查找