HttpAntiForgeryException(0x80004005):提供的防伪令牌是针对与当前用户不同的基于声明的用户的

时间:2019-05-28 09:04:13

标签: asp.net-mvc asp.net-identity

我的情况不同,当我登录到应用程序,然后直接关闭浏览器,然后再次打开浏览器并转到登录页面时,如果不输入用户名或密码就单击登录按钮,则会出现此错误:

“提供的防伪令牌是针对与当前用户不同的基于声明的用户的。”

,当我使用“ ctrl + f5”刷新页面时,此问题已解决。

如何解决这个问题,我进行了很多搜索,最多要做别人告诉的事情。

  1. [AllowAnonymous]
  2. [OutputCache(NoStore = true,位置= OutputCacheLocation.None)]

将此添加到我的控制器操作方法中 并且还使用if session.abandon(); 但是什么都没有改变,而且我在Web配置文件中添加了机器密钥,但是什么也没有改变。

注意:-不使用任何形式的身份验证。

    [AllowAnonymous]
    [OutputCache(NoStore = true, Location = System.Web.UI.OutputCacheLocation.None)]
    public ActionResult Login(string returnUrl)
    {

        Session.Abandon();
        Session.Clear();
        ViewBag.ReturnUrl = returnUrl;

        var AutheticationManager = HttpContext.GetOwinContext().Authentication;
        // AutheticationManager.SignOut();
        AutheticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);

        LoginViewModel model = new LoginViewModel();
        if (Request.Cookies["unm"] != null)
        {
            HttpCookie unm = (HttpCookie)Request.Cookies["unm"];
            model.Email = unm.Value;
        }
        if (Request.Cookies["pas"] != null)
        {
            HttpCookie pas = (HttpCookie)Request.Cookies["pas"];
            model.Password = pas.Value;
        }
        if (Request.Cookies["rem"] != null)
        {
            HttpCookie rem = (HttpCookie)Request.Cookies["rem"];
            if (rem.Value.ToLower() == "true")
                model.RememberMe = true;
            else
                model.RememberMe = false;
        }


        return View();
    }

我需要做些什么来克服此错误。 请让我知道任何帮助。

0 个答案:

没有答案