C# request.isauthenticated false после выхода из системы и повторного входа в систему с использованием Azure и MVC 5 - PullRequest
0 голосов
/ 12 февраля 2020

Я перепробовал много кода и возможных решений проблемы, но проблема не устранена.

Процедура для репликации проблемы:

  • Пользователь открывает страницу: https://localhost: 44305 / Учетная запись / Логин
  • Клики "Кнопка"
  • Переадресация на страницу входа Microsoft
  • Ввод учетных данных
  • И request.isauthenticated = true, поэтому перенаправляется на URL-адрес, настроенный в Azure: https://localhost: 44305 / Home / Index /
  • Пользователь правильно входит на веб-страницу со своими учетными данными назначенный.

Возникает проблема: - До этого момента request.isauthenticated остается верным - Пользователь выполняет свою работу и затем в конечном итоге закрывает браузер или нажимает SignOut () - Здесь запрос .isauthenticated имеет значение false, что является правильным с момента выхода пользователя из системы. - Когда пользователь снова входит на сайт https://localhost: 44305 / Account / Login - Он перенаправляется и снова запрашивает учетные данные, НО request.isauthenticated is теперь и всегда ложно, пока IIS Пул или приложение перезапускается, и пользователь не может войти снова.

Почему пользователь может войти в систему только один раз?

//My login:
public void SignIn()
{
    if (!Request.IsAuthenticated)
    {
        //LimpiaGalletas();
        HttpContext.GetOwinContext().Authentication.Challenge(
            new AuthenticationProperties { RedirectUri = "/" }
            , OpenIdConnectAuthenticationDefaults.AuthenticationType
            );
    }
}

public ActionResult Login()
{
    if (Request.IsAuthenticated)
    {
        return RedirectToAction("Index", "Home");
    }
    else
    {
        return View();
    }
}

public void Out()
{
    HttpContext.GetOwinContext().Authentication.SignOut(OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType);
}
...