Anti forgery token is meant for user "" but the current user is "username"
Anti forgery token is meant for user "" but the current user is "username"
回答1
This is happening because the anti-forgery token embeds the username of the user as part of the encrypted token for better validation. When you first call the @Html.AntiForgeryToken()
the user is not logged in so the token will have an empty string for the username, after the user logs in, if you do not replace the anti-forgery token it will not pass validation because the initial token was for anonymous user and now we have an authenticated user with a known username.
You have a few options to solve this problem:
-
Just this time let your SPA do a full POST and when the page reloads it will have an anti-forgery token with the updated username embedded.
-
Have a partial view with just
@Html.AntiForgeryToken()
and right after logging in, do another AJAX request and replace your existing anti-forgery token with the response of the request.
Note that setting AntiForgeryConfig.SuppressIdentityHeuristicChecks = true
does not disable username validation, it simply changes how that validation works. See the ASP.NET MVC docs, the source code where that property is read, and the source code where the username in the token is validated regardless of the value of that config.
回答2
It happens a lot of times with my application, so I decided to google for it!
I found a simple explanation about this error! The user are double-clicking the button for login! You can see another user talking about that on the link below:
MVC 4 provided anti-forgery token was meant for user "" but the current user is "user"
I hope it helps! =)
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-09-24 Why would I want to use an ExpressionVisitor?
2019-09-24 Interpreting Expressions
2019-09-24 Traverse an expression tree and extract parameters
2019-09-24 Get Argument Values From Linq Expression
2019-09-24 手机软件
2015-09-24 simplified build configuration
2015-09-24 Visual Studio中的项目属性-->生成-->配置