10
反伪造令牌用于用户“”,但当前用户是“用户名”
我正在构建一个单页应用程序,并且遇到防伪令牌问题。 我知道为什么会发生此问题,我只是不知道如何解决。 当发生以下情况时出现错误: 非登录用户将加载一个对话框(带有生成的防伪令牌) 用户关闭对话框 用户登录 用户打开相同的对话框 用户在对话框中提交表单 反伪造令牌用于用户“”,但当前用户是“用户名” 发生这种情况的原因是因为我的应用程序是100%单页的,并且当用户通过ajax发布成功登录到时/Account/JsonLogin,我只是使用从服务器返回的“已验证的视图”切换出当前视图,但不重新加载页。 我知道这是因为,如果我在步骤3和4之间简单地重新加载页面,就不会出错。 因此,@Html.AntiForgeryToken()在重新加载页面之前,似乎在加载的表单中仍为旧用户返回令牌。 如何更改@Html.AntiForgeryToken()以为新的经过身份验证的用户返回令牌? 我在每次调用时都注入了一个GenericalPrincipal带有自定义的新变量,实际上,我的自定义Identity 属性的属性设置为true,但除非我重新加载页面,否则它似乎仍为旧用户呈现令牌。IIdentityApplication_AuthenticateRequest@Html.AntiForgeryToken()HttpContext.Current.User.IdentityIsAuthenticated@Html.AntiForgeryToken