我设置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 返回的信息,这将允许我在用户成功登录后更新超时。
我通过将 openidconnect 属性 UseTokenLifetime 设置为 true 并删除 maxage cookie 设置解决了这个问题。令牌超时在 B2C 策略中设置。我还从 init 设置中删除了 max Age openidconnect 设置。相反,我在 options.Events.OnTokenValidated 中设置它,但这可能是多余的。