Blazor服务器端OpenID注销问题
创始人
2024-12-21 06:30:14
0次

在 Blazor 服务器端应用程序中,OpenID 身份验证提供程序提供了在客户端注销用户的机制。但是,当使用 OpenID 登录时,这种机制可能会失效,导致用户无法注销。这个问题可以通过以下步骤解决:

  1. 在 Startup.cs 中注册 OpenID 身份验证提供程序并启用注销机制。
services.AddAuthentication(options =>
{
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
    options.Cookie.Name = "BlazorServerSideAuthentication";
})
.AddOpenIdConnect(options =>
{
    options.Authority = "https://demo.identityserver.io/";
    options.ClientId = "interactive.public";
    options.ResponseType = "code";
    options.SaveTokens = true;
    options.Events = new OpenIdConnectEvents
    {
        OnRedirectToIdentityProviderForSignOut = async ctx =>
        {
            var accessToken = await ctx.HttpContext.GetTokenAsync("access_token");
            if (!string.IsNullOrEmpty(accessToken))
            {
                ctx.ProtocolMessage.IdTokenHint = await ctx.HttpContext.GetTokenAsync("id_token");
                ctx.ProtocolMessage.PostLogoutRedirectUri = ctx.Properties.RedirectUri;
                ctx.ProtocolMessage.State = ctx.Properties.Items[".xsrf"];
            }
        }
    };
});
  1. 确保在 Index.razor 页面上存在“注销”按钮,并附加以下事件处理程序。
@page "/"
@using Microsoft.AspNetCore.Authentication
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]



@code {
    private async Task Logout()
    {
        await HttpContext.SignOutAsync("cookie");
        await HttpContext.SignOutAsync("oidc");
    }
}

这个事件处理程序调用 HttpContext.SignOutAsync 方法注销当前用户的 cookie 和 OpenID 连接。

通过这些步骤,您应该能够成功注销 OpenID 身份验证提供程序。

相关内容

热门资讯

必备辅助推荐!悠悠广东麻将辅助... 必备辅助推荐!悠悠广东麻将辅助脚本软件,悠悠广东麻将切实真的有辅助普及脚本1、在悠悠广东麻将插件功能...
今日百科!微乐卡五星透视脚本软... 今日百科!微乐卡五星透视脚本软件,微乐卡五星原来真的有透视解谜技巧小薇(辅助器软件下载)致您一封信;...
玩家必用!天天爱钦州麻将辅助脚... 玩家必用!天天爱钦州麻将辅助脚本软件,天天爱钦州麻将总是真的是有辅助专业软件1、点击下载安装,天天爱...
普及知识!开心娱乐辅助器脚本软... 普及知识!开心娱乐辅助器脚本软件,开心娱乐好像真的是有辅助器揭幕脚本1、开心娱乐免费辅助多个强度级别...
实测揭晓!鲁乐山东麻将透视脚本... 实测揭晓!鲁乐山东麻将透视脚本软件,鲁乐山东麻将本来是真的有透视有挂技巧该软件可以轻松地帮助玩家将鲁...
一分钟带你了解!老朋友麻将透视... 一分钟带你了解!老朋友麻将透视挂脚本软件,老朋友麻将一直真的是有透视挂揭露脚本1)老朋友麻将辅助插件...
记者发布!乐乐围棋入门透视挂脚... 记者发布!乐乐围棋入门透视挂脚本软件,乐乐围棋入门竟然有透视挂总结脚本1、不需要AI权限,帮助你快速...
热点推荐!微乐四川麻将辅助器脚... 热点推荐!微乐四川麻将辅助器脚本软件,微乐四川麻将其实真的是有辅助器辅助技巧1、首先打开微乐四川麻将...
玩家必看!欢乐茶馆透视脚本软件... 玩家必看!欢乐茶馆透视脚本软件,欢乐茶馆总是存在有透视揭露神器1、每一步都需要思考,不同水平的挑战欢...
来一盘!STA辅助器脚本软件,... 来一盘!STA辅助器脚本软件,STA果然是有辅助器普及脚本1)STA有没有挂:进一步探索STA有辅助...