Tag: 成员资格提供者

反伪造令牌用于用户“”,但当前用户是“用户名”

我正在构build一个单页面应用程序,并遇到了防伪标记的问题。 我知道为什么这个问题发生,我只是不知道如何解决这个问题。 发生以下情况时出现错误: 未login的用户加载对话框(使用生成的防伪标记) 用户closures对话框 用户login 用户打开相同的对话框 用户在对话框中提交表单 反伪造令牌用于用户“”,但当前用户是“用户名” 发生这种情况的原因是因为我的应用程序是100%单页面,当用户通过ajax postlogin到/Account/JsonLogin ,我简单地使用从服务器返回的“已validation视图”切换当前视图,但不要重新加载页面。 我知道这是原因,因为如果我简单地重新加载步骤3和4之间的页面,没有错误。 因此,加载的表单中的@Html.AntiForgeryToken()似乎仍然会为旧用户返回一个令牌,直到页面重新加载。 我怎样才能改变@Html.AntiForgeryToken()为新的authentication用户返回一个令牌? 我在每个Application_AuthenticateRequest上注入了一个新的GenericalPrincipal ,所以在@Html.AntiForgeryToken()被调用的时候, HttpContext.Current.User.Identity实际上是我的自定义标识, IsAuthenticated属性被设置为true,但是@Html.AntiForgeryToken似乎仍然为旧用户呈现一个令牌,除非我做一个页面重新加载。