将 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 注销的方法?