是否有Session.Abandon()asp.net核心

Sha*_*Ali 14 .net-core asp.net-core asp.net-core-1.0

在Asp.net WebForms中,global.asax中有一个名为Seesion_End()的事件,每当会话超时或者你调用Session.Abandon()这个事件处理程序执行时,我需要在asp.net Core中有类似的行为,可能吗?

Rob*_*sen 5

文件涵盖了大部分的这一点。会话超时设置如下:

services.AddSession(options =>
{
  options.IdleTimeout = TimeSpan.FromSeconds(10);
});
Run Code Online (Sandbox Code Playgroud)

但由于它是一个 cookie,所以 cookie 也有一个过期日期。因此,如果IdleTimeout过期,会话将过期。如果 cookie 过期,会话就会消失。如果 cookie 被删除,会话就会消失。

调用Session.Clear()会删除会话的内容,但会保持会话完好无损(即 cookie 不会被删除),如中所述。


小智 5

您可以通过简单地调用来清除会话:

HttpContext.Session.Clear();

  • 这将导致“会话”为“空”,但不会“删除”或“遗弃”。 (2认同)
  • 那么如果我们需要在.Net Core 3.1中进行Abandon怎么办? (2认同)