You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8 ASP.NET Core MVC微软登录如何启用账号选择功能?

解决ASP.NET Core MVC (.NET 8)微软登录自动使用旧账号的问题

你遇到的问题是微软登录时自动复用之前登录的账号,要启用账号选择界面,只需要在微软登录的配置中添加强制账号选择的参数即可实现。

修改你的配置代码,在AddMicrosoftAccount的配置里增加OnRedirectToAuthorizationEndpoint事件处理,给微软授权地址追加prompt=select_account参数:

builder.Services.AddAuthentication(options =>
{
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = MicrosoftAccountDefaults.AuthenticationScheme;
}).AddCookie().AddMicrosoftAccount(MicrosoftAccountDefaults.AuthenticationScheme, options =>
{
    options.ClientId = builder.Configuration.GetSection("MicrosoftKeys:ClientId").Value;
    options.ClientSecret = builder.Configuration.GetSection("MicrosoftKeys:ClientSecret").Value;
    
    // 添加这段代码,强制显示账号选择界面
    options.Events.OnRedirectToAuthorizationEndpoint = context =>
    {
        // 给授权URL追加prompt=select_account参数
        var modifiedUrl = context.RedirectUri + "&prompt=select_account";
        context.Response.Redirect(modifiedUrl);
        return Task.CompletedTask;
    };
});

原理说明:

  • prompt=select_account是微软身份认证服务支持的参数,当这个参数存在时,会强制用户选择登录账号,不会自动复用之前的会话。
  • 通过OnRedirectToAuthorizationEndpoint事件,我们可以拦截默认的授权跳转URL,手动追加这个参数,从而实现账号选择的效果。

修改后,用户点击登录按钮时,就会弹出你想要的账号选择界面,需要切换账号时可以直接选择其他账号,或者点击"使用其他账号"输入新账号。

内容的提问来源于stack exchange,提问作者Midlaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 01:27:04