Невозможно выйти с помощью аутентификации Azure AD в .Net Core Web App - PullRequest
0 голосов
/ 31 мая 2018

Я не могу выйти из основного веб-приложения .Net при использовании Azure AD для входа.

Когда я пытаюсь войти в систему, используя другую электронную почту, он просто входит в систему как предыдущий пользователь, который вошел в систему. Он даже не запрашивает пароль, когда новый пользователь пытается войти.

Iпробовал следующие подходы, но -

// Send an OpenID Connect sign-out request.
        HttpContext.GetOwinContext().Authentication.SignOut(
            OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType);

OR

HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);

or 

if (HttpContext.User.Identity.IsAuthenticated)
{
    await HttpContext.Authentication.SignOutAsync(settings.SignInPolicyId);
    await HttpContext.Authentication.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
}

Ни один из них не работает на .Net Core.

Этот код ниже собирает и работает на ядре .net, но не полностью отключает пользователя.

Request.GetOwinContext().Authentication.SignOut(new AuthenticationProperties { RedirectUri = clsCommonFunction.GetLoginURL() });

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 31 мая 2018

Здесь - это метод SignOut для ASP.NET Core .

[HttpGet]
public IActionResult SignOut()
{
    var callbackUrl = Url.Action(nameof(SignedOut), "Account", values: null, protocol: Request.Scheme);
    return SignOut(
        new AuthenticationProperties { RedirectUri = callbackUrl },
        CookieAuthenticationDefaults.AuthenticationScheme,
        OpenIdConnectDefaults.AuthenticationScheme);
}

[HttpGet]
public IActionResult SignedOut()
{
    if (User.Identity.IsAuthenticated)
    {
        // Redirect to home page if the user is authenticated.
        return RedirectToAction(nameof(HomeController.Index), "Home");
    }

    return View();
}

Он даже не запрашивает паролькогда новый пользователь пытается войти в систему.

Пожалуйста, очистите кеш браузера Ctrl + F5 .

...