确保在启动身份验证服务器的时候,已经添加了注销终结点的支持。 示例代码: services.AddAuthentication() .AddOpenIdConnect("oidc", options => { // 省略代码 options.Events = new OpenIdConnectEvents() { // 省略代码 OnRedirectToIdentityProviderForSignOut = async (context) => { var logoutUri = $"{context.ProtocolMessage.Issuer}/v2/logout"; var postLogoutUri = context.Properties.RedirectUri; if (!string.IsNullOrEmpty(postLogoutUri)) { if (postLogoutUri.StartsWith("/")) { // 使得postLogoutUri相对于应用程序的根目录(从而跨越配对的端口和方案) var request = context.Request; postLogoutUri = request.Scheme + "://" + request.Host + request.PathBase + postLogoutUri; } logoutUri += $"?returnTo={ Uri.EscapeDataString(postLogoutUri)}"; } context.Response.Redirect(logoutUri); context.HandleResponse(); } }; });
在您的应用程序中,使用IdentityServer提供的logout终结点进行注销。
示例代码:
[Authorize]
public async Task
上一篇:ASP.NETCore身份验证cookie在关闭浏览器时不会被删除。
下一篇:asp.netcore身份验证服务无法解析:SignInManager、UserManager、RoleManager。