要使ASP.NET Core 3.1/Identity会话在滑动过期时过期,您可以使用以下代码示例中的方法:
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(30); // 设置会话的空闲超时时间为30分钟
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
app.UseSession();
public class HomeController : Controller
{
private readonly IHttpContextAccessor _httpContextAccessor;
public HomeController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public IActionResult Index()
{
var session = _httpContextAccessor.HttpContext.Session;
session.SetString("LastAccessTime", DateTime.Now.ToString()); // 更新最后访问时间
return View();
}
}
这样,每当用户访问控制器的操作时,会话的最后访问时间将被更新为当前时间,从而滑动过期会话。
注意:滑动过期的会话在每次请求时更新过期时间。如果用户在空闲超时时间内没有进行任何操作,则会话将过期。