SignOutAsync Сделать мой User.Identity.IsAuthenticated по-прежнему true - PullRequest
0 голосов
/ 12 февраля 2019

когда я пытаюсь подписать форму моего приложения, которое я авторизовал с помощью gmail User.Identity.IsAuthenticated, все еще всегда верно, это мой код для

public  IActionResult LogOff()
{
    HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);

    return Challenge(new AuthenticationProperties { RedirectUri = "/Home/Index/" },
        "Google");
}

моего кода запуска

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<RouteOptions>(options =>
    {
        options.LowercaseUrls = true;
        options.AppendTrailingSlash = true;
    });

    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(options =>
        {
            options.LoginPath = "/Log/Outh/";
            options.LogoutPath = "/Log/LogOff/";
        })
        .AddGoogle(options =>
        {
            options.ClientId = Configuration["Logging:GoogleCredintial:ClientID"];
            options.ClientSecret = Configuration["Logging:GoogleCredintial:ClientSecret"];
            options.CallbackPath = "/Log/Outh";
        });

    services.AddMvc();
    services.AddMemoryCache();
}

1 Ответ

0 голосов
/ 12 февраля 2019

Google не поддерживает сторонний выход.Вы не сможете выйти из аккаунта Google только из своей системы.Пользователям нужно будет зайти в Google и выйти из него.

Единственный способ найти это - удалить cookie

// Force delete the authentication cookie(s) we created when user signed in
if (HttpContext.Request.Cookies[".AspNetCore.MyCookie"] != null)
   {
    var siteCookies = HttpContext.Request.Cookies.Where(c => c.Key.StartsWith("AspNetCore.MyCookie"));
    foreach (var cookie in siteCookies)
       {
        Response.Cookies.Delete(cookie.Key);
       }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...