我有一个直接从Microsoft的 ASP.NET Core 6.0 MVC Web应用程序模板中获得的网站,其中"身份验证类型"设置为"个人帐户"。
如何设置身份验证令牌的过期时间(最好使用滚动值)?
根据文档,您将在其中添加类似以下内容的内容:
builder.Services.ConfigureApplicationCookie(options =>
{
// Cookie settings
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(5);
options.LoginPath = "/Identity/Account/Login";
options.AccessDeniedPath = "/Identity/Account/AccessDenied";
options.SlidingExpiration = true;
});
从文档中关于ExpireTimeSpan
:
控制存储在 Cookie 中的身份验证票证从创建之日起保持有效的时间 过期信息存储在受保护的 Cookie 票证中。因此,过期的 cookie 将被忽略 即使它在浏览器应该清除它之后传递给服务器。
这与
Microsoft.AspNetCore.Http.CookieOptions.Expires
的值是分开的,后者指定浏览器将保留 cookie 的时间。
换句话说,虽然它不会将 Cookie 本身设置为过期值,但ExpireTimeSpan
和SlidingExpiration
设置将导致应用程序大约每 5 分钟在响应中提供一个新值,并在受保护的 Cookie 值内更新新的过期时间。