Проблема при выходе из обратного канала с клиентами owin mvc - идентификатор сеанса равен нулю в функции обратного вызова клиента - идентификационный сервер 4 - PullRequest
0 голосов
/ 21 марта 2019

Есть ли какая-либо помощь для выхода из обратного канала для клиентов MVC owin.Я пытаюсь реализовать единый выход для всех клиентов.В настоящее время я могу включить функцию SignOutCleanup каждого клиента с помощью BackChannelLogoutUri при выходе из одного клиента, но у меня возникли проблемы с удалением файлов cookie других клиентов, поскольку sid имеет значение null.Другие клиенты остаются в системе, поскольку их cookie сохраняются.

ниже приведен код, реализованный в контроллере клиентов:

public ActionResult LogOut()
{
    Request.GetOwinContext().Authentication.SignOut();
    return Redirect("/");
}

public void SignoutCleanup(string sid)
{
    var cp = (ClaimsPrincipal)User;
    var sidClaim = cp.FindFirst("sid");
    if (sidClaim != null && sidClaim.Value == sid)
    {
        Request.GetOwinContext().Authentication.SignOut("Cookies");
    }
}

, но sid возвращает ноль.

клиентКонфиг в Ids4:

new Client
{
    ClientId = "MvcApp4",
    AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,
    ClientSecrets =
    {
        new Secret("Mvc-Secret4".Sha256())
    },
    // where to redirect to after login
    RedirectUris = { "http://localhost:55718/signin-oidc" },
    // where to redirect to after logout
    PostLogoutRedirectUris = { "http://localhost:55718/" },

    AllowedScopes = new List<string>
    {
        IdentityServerConstants.StandardScopes.OpenId,
        IdentityServerConstants.StandardScopes.Profile,
        "API"
    },
    AllowOfflineAccess = true,
    BackChannelLogoutSessionRequired = true,
    BackChannelLogoutUri = "http://localhost:55718/Home/SignoutCleanup/"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...