问题描述
我的角度应用程序的无提示刷新机制出现问题,因为身份服务器无法正确设置cookie到期时间。
成功登录后,将为身份服务器的域设置以下cookie:
您可以在图片上看到,“ idsrv.session” cookie的到期日期为“ session”。在我的旧IdentityServer3中,此cookie具有正确的到期日期,并且一切正常。
谁能帮我解决这个问题。我需要一种方法来设置“ idsrv.session” cookie的到期日期。
以下是为实现我的目标而添加的当前配置/语句:
// Startup.cs - ConfigureServices()
services
.AddIdentityServer(options =>
{
options.EmitStaticAudienceClaim = true;
options.AccessTokenJwtType = "JWT";
options.Authentication.CookieLifetime = TimeSpan.FromDays(30);
})
services
.AddAuthentication("Cookies")
.AddCookie("Cookies",options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(30);
})
// AccountController.cs - Login()
await HttpContext.SignInAsync(isuser,new AuthenticationProperties
{
IsPersistent = true,ExpiresUtc = DateTimeOffset.UtcNow.Add(TimeSpan.FromDays(30))
});
但是此设置对“ idsrv.session” cookie无效。
我使用.net core 3.1和IdentityServer4 4.0.4。
谢谢!
解决方案:
对于我来说,以下陈述对我有帮助,即30分钟后用户将不会注销。过期的“ idsrv.session” Cookie仍设置为session,但30分钟后将不会删除。
services.Configure<SecurityStampValidatorOptions>(o => o.ValidationInterval = TimeSpan.FromDays(30));
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)