如何在 ASP.NET MVC (.Net Framework 4.5) 中完成 Keycloak 注销

问题描述 投票:0回答:0

将 Keycloak 与我的 .Net Framework 4.5 MVC 项目集成。由于 .Net 没有直接的 Keycloak 客户端,因此我为此使用“Owin.Security.Keycloak-3”NuGet。我可以从 keykloack 页面而不是我的应用程序登录页面登录。我通过执行 Request.GetOwinContext().Authentication.SignOut(Request.GetOwinContext().Authentication.GetAuthenticationTypes().Select(Function(x) x.AuthenticationType).ToArray()) 删除了请求数据。但它仍然会在应用程序运行时自动转到相同的登录页面。

我在启动类中使用服务器参数作为

        app.UseCookieAuthentication(New CookieAuthenticationOptions With {
                            .AuthenticationType = persistentAuthType
                             })
        app.SetDefaultSignInAsAuthenticationType(persistentAuthType)
        app.UseKeycloakAuthentication(New KeycloakAuthenticationOptions With {
        .Realm = "MYPROJECT",
        .ClientId = "TEST",
        .KeycloakUrl = "https://keycloak.dev.myserver.com",
        .AuthenticationType = persistentAuthType,
        .SignInAsAuthenticationType = persistentAuthType,
        .AllowUnsignedTokens = False,
        .DisableIssuerSigningKeyValidation = True,
        .DisableIssuerValidation = True,
        .DisableAudienceValidation = True,
        .TokenClockSkew = TimeSpan.FromSeconds(2),
        .Scope = "openid"
})

在控制器的注销动作中,

Request.GetOwinContext().Authentication.SignOut(Request.GetOwinContext().Authentication.GetAuthenticationTypes().Select(Function(x) x.AuthenticationType).ToArray())

删除令牌。但仍然进入应用程序的相同登录页面而不显示 keycloak 登录页面。我们如何处理令牌或是否有从 keyklock 注销的方法?

c# asp.net-mvc-4 keycloak owin logout
© www.soinside.com 2019 - 2024. All rights reserved.