HttpAntiForgeryException (0x80004005): предоставленный токен защиты от подделки был предназначен для пользователя, основанного на утверждениях, чем текущий пользователь - PullRequest
0 голосов
/ 28 мая 2019

Мой случай отличается, когда я вошел в приложение, а затем сразу же закрыл браузер, а затем снова открыл браузер и перешел на страницу входа в систему. Чтобы нажать кнопку входа в систему без ввода имени пользователя или пароля, выдается эта ошибка:

«Предоставленный маркер защиты от подделки предназначен для пользователя, основанного на утверждениях, отличного от текущего пользователя».

и эта проблема решается, когда я обновляю страницу с помощью "Ctrl + F5".

как решить эту проблему, я много искал и делал в основном все, что рассказывали другие люди.

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

добавить это в мой метод действия контроллера а также используйте if session.abandon (); но ничего не изменилось, а также я добавил машинный ключ в мой файл веб-конфигурации, но ничего не изменилось.

Примечание: - не использовать в нем никакой аутентификации формы.

    [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();
    }

что мне нужно сделать, чтобы преодолеть эту ошибку. пожалуйста, дайте мне знать, любая помощь очень ценится.

...