MVC3 Azure - Аутентификация с помощью форм - LogOff Сбои с треском - я сделал плохо, плохо - PullRequest
0 голосов
/ 30 марта 2012

Это справедливо для IE, FireFox и Chrome на устройстве dev, в том числе после ручного удаления файлов cookie в IE Internet Options. Я вхожу в систему как пользователь, меняю пароль (работает) и выхожу.Затем я могу войти в систему как пользователь со старым и новым паролем - пароль мусора не проходит проверку подлинности.Вход в систему - Изменить пароль - Выйти - Войти снова со старым паролем, Аутентифицироваться - Выйти - Войти с новым паролем, Аутентифицировать - Выйти - Войти с паролем нежелательной почты, конечно, не удастся.отсутствует часть для Azure?Обескураживающий - grrr web.config:

<authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="15"></forms>
</authentication>

Код SignOff:

public ActionResult LogOff()
    {
        FormsAuthentication.SignOut();

        // Drop all the information held in the session
        Session.Clear();
        Session.Abandon();

        // clear authentication cookie
        HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
        cookie1.Expires = DateTime.Now.AddYears(-1);
        Response.Cookies.Add(cookie1);

        // clear session cookie
        HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
        cookie2.Expires = DateTime.Now.AddYears(-1);
        Response.Cookies.Add(cookie2);
        foreach (var cookie in Request.Cookies.AllKeys)
        {
            Request.Cookies.Remove(cookie);
        }
        // Redirect the user to the login page
        return RedirectToAction("LogOn"); 
    }

1 Ответ

0 голосов
/ 30 марта 2012

Я не видел место ответа! Решено! Похоже, EF кэшировал ранее полученные объекты scatteredcode.wordpress.com / tag / dependency-инъекция / Принудительно создать новый экземпляр поставщика членства для этого веб-запроса и, таким образом, гарантировать, что контекст базы данных не будет содержать устаревшую сущность пользователя. Спасибо разбросанный код -

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...