如何在 ASP.NET Core 8 中根据登录用户设置 Cookie 和会话超时

问题描述 投票:0回答:1

我设置cookie和会话超时如下(我需要使用这个API。我不能使用新的Identity api):

.AddCookie(options =>
{
    options.ExpireTimeSpan = TimeSpan.FromMinutes(15);
    options.SlidingExpiration = true;
    options.Cookie.MaxAge = options.ExpireTimeSpan;
})
.AddOpenIdConnect(options =>
{
     options.MaxAge = TimeSpan.FromMinutes(15);
     ...
});

这为每个用户设置相同的超时。这些值是在用户重定向到 IDP 之前设置的。

用户登录后(但在 cookie 返回到 UI 之前),如何将 cookie 和会话超时更新为不同的值。我正在针对 Azure B2C 进行身份验证,并希望使用用户的角色来确定超时。

我希望有一个事件我可以监听,该事件是从 Azure 返回的信息,这将允许我在用户成功登录后更新超时。

asp.net-core session cookies timeout
1个回答
0
投票

我通过将 openidconnect 属性 UseTokenLifetime 设置为 true 并删除 maxage cookie 设置解决了这个问题。令牌超时在 B2C 策略中设置。我还从 init 设置中删除了 max Age openidconnect 设置。相反,我在 options.Events.OnTokenValidated 中设置它,但这可能是多余的。

© www.soinside.com 2019 - 2024. All rights reserved.