IdentityServer4在30分钟后自动注销

DiPix

我有带有Angular的IdentityServer4。每5分钟刷新一次令牌。但是30分钟后,用户将自动注销。我试图以某种方式设置终身Cookie,但没有成功。

这是我当前的配置:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<AppIdentityDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Identity")));

        services.AddIdentity<AppUser, IdentityRole>(options =>
            {
                options.Password.RequiredLength = 6;
                options.Password.RequireLowercase = false;
                options.Password.RequireUppercase = false;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireDigit = false;
                options.SignIn.RequireConfirmedEmail = true;
                options.User.RequireUniqueEmail = true;
                options.User.AllowedUserNameCharacters = null;
            })
            .AddEntityFrameworkStores<AppIdentityDbContext>()
            .AddDefaultTokenProviders();

        services.AddIdentityServer(options => options.Authentication.CookieLifetime = TimeSpan.FromHours(10))
            .AddDeveloperSigningCredential()
            .AddInMemoryPersistedGrants()
            .AddInMemoryIdentityResources(Config.GetIdentityResources())
            .AddInMemoryApiResources(Config.GetApiResources())
            .AddInMemoryClients(Config.GetClients(Configuration["AppUrls:ClientUrl"]))
            .AddAspNetIdentity<AppUser>();

        services.AddTransient<IProfileService, IdentityClaimsProfileService>();

        services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin()
           .AllowAnyMethod()
           .AllowAnyHeader()));

        services.AddRazorPages().AddRazorRuntimeCompilation();
    }

@编辑

如果我要加

services.Configure<SecurityStampValidatorOptions>(options =>
{
    options.ValidationInterval = TimeSpan.FromHours(24);
});

然后它可以正常工作,但是我敢打赌这不是解决我问题的正确方法。


@ Edit2

我发现了这个https://github.com/IdentityModel/oidc-client-js/issues/911#issuecomment-617724445,这对我有所帮助,但仍然不确定是否是解决此问题的正确方法,或者只是下一次破解。

DiPix

我找到了解决方案。我在用

await HttpContext.SignInAsync(user.Id, user.UserName, props);

用于登录用户。这是造成问题的原因。

之后更改为:

var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberLogin, lockoutOnFailure: true);

它开始正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP中闲置15分钟后自动注销

来自分类Dev

在PHP中闲置15分钟后自动注销

来自分类Dev

30分钟后注销ASP.NET Identity用户

来自分类Dev

30分钟后性能下降

来自分类Dev

制作30分钟后,如何自动删除指定文件夹中的文件?

来自分类Dev

30分钟后删除按钮。拉拉韦尔

来自分类Dev

30分钟后删除记录SQLite

来自分类Dev

30分钟后编程开始和结束

来自分类Dev

15-30分钟后随机冻结

来自分类Dev

Blazor WASM IdentityServer4注销警报

来自分类Dev

移动30分钟前的文件

来自分类Dev

iOS禁用UIButton 30分钟

来自分类Dev

将时间分成30分钟

来自分类Dev

检查是否超过30分钟

来自分类Dev

查找30分钟前的文件

来自分类Dev

如何在Android中每30分钟停止AppWidgetProvider自动更新

来自分类Dev

连续执行30分钟后如何防止Hangfire定期性工作重新启动

来自分类Dev

简单的服务器发送事件:30分钟后时钟停止

来自分类Dev

启用GPS后,每30分钟发送一次位置更新

来自分类Dev

最好在30分钟后再创建一个dateTime对象?

来自分类Dev

30分钟后将行从一个MySQL表移至其他

来自分类Dev

正常运行30分钟后,同步/ fsync的通话速度变慢

来自分类Dev

如何在30分钟后发送给客户的通知?

来自分类Dev

正常运行30分钟后,同步/ fsync的通话速度变慢

来自分类Dev

30分钟后,即使在BIOS屏幕上,PC也会关闭

来自分类Dev

我在android应用中的永久数据在30分钟后再次打开时会丢失

来自分类Dev

30分钟后从数据库中删除项目

来自分类Dev

首次收到GET-请求后30分钟如何发送推文?

来自分类Dev

30分钟后IPv6默认路由丢失