小编218*_*490的帖子

ASP.NET Core MVC Google Auth 注销问题

我已经实现了可以使用基本的谷歌身份验证登录的代码。用户可以登录,查看显示电子邮件的页面,然后注销回到谷歌登录屏幕并选择一个新帐户。

但是,我注意到,大约几天后,由于某种原因,该网站不再要求用户登录,并且该网站会自动登录。在这种状态下,用户也无法注销,并且在使用上面之前工作的原始方法注销时,我仍然可以看到上一个用户的登录信息。我希望用户在每次加载网站时选择登录名,并且希望用户能够注销而不必进入隐身模式。

其他一些注意事项:

  1. 即使在隐身模式下,如果用户登录,用户也无法注销,直到在此状态下创建新的隐身窗口。
  2. 是否有原因导致登录/注销可以工作几天,然后 google chrome(以及其他浏览器,例如 mobile safari)就变得流氓并停止要求用户登录?
  3. 我还尝试在设置中禁用 chrome 自动登录,症状仍然存在。
  4. 我尝试过切换 UseAuthentication() 和 UseAuthorization() 调用以及一些其他调整,但也许我在这里完全出了问题。

下面是使用新的 .NET Core 6 MVC Web 应用程序的示例。

程序.cs

using Microsoft.AspNetCore.Authentication.Cookies;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();

// Using GoogleDefaults.AuthenticationScheme or leaving blank below leads to errors
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie()
    .AddGoogle(options =>
    {
        options.ClientId = "<CLIENT ID FROM GOOGLE CONSOLE>";
        options.ClientSecret = "<SECRET FROM GOOGLE CONSOLE>";
        options.SaveTokens = true;
    });

var app = builder.Build();

// Configure the HTTP request pipeline. …
Run Code Online (Sandbox Code Playgroud)

c# authentication asp.net-mvc asp.net-core

2
推荐指数
1
解决办法
1167
查看次数

标签 统计

asp.net-core ×1

asp.net-mvc ×1

authentication ×1

c# ×1