C# 如何在global.asax文件的ASP.Net MVC 5中捕获会话超时时的会话值
我想在ASP.NETMVC5应用程序中会话超时时访问会话中的值。下面是我所做的C# 如何在global.asax文件的ASP.Net MVC 5中捕获会话超时时的会话值,c#,asp.net,asp.net-mvc,session,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Session,Asp.net Mvc 5,我想在ASP.NETMVC5应用程序中会话超时时访问会话中的值。下面是我所做的 <system.web> <sessionState timeout="3"></sessionState> </system.web> 现在我想在会话结束时访问它。所以在global.asax中,我写了下面的代码 public void Session_OnEnd() { if (System.Web.Ht
<system.web>
<sessionState timeout="3"></sessionState>
</system.web>
现在我想在会话结束时访问它。所以在global.asax中,我写了下面的代码
public void Session_OnEnd()
{
if (System.Web.HttpContext.Current.Session["Val"] != null) // EXCEPTION
{
int TenantSessionId = (int)System.Web.HttpContext.Current.Session["Val"];
}
}
但在超时(3分钟)后,我在Session_oned()方法中将异常作为NULL引用。请引导我。我错过什么了吗?我只想访问会话变量。或者不可能在会话即将超时之前捕获会话值
请注意,当用户登录时,我正在设置会话变量。因此,会话变量代码的设置不在“会话启动”中。只是想把这些信息公布出来。但我确信,当按照我的代码流调用session_end()时,该值已在会话中正确设置。当您点击时,会话已被放弃。有几种javascript技术可以将用户引导到警告页面或执行保持活动心跳。上面的链接告诉我可以。请引导我。问题是你们想完成什么?如果你想警告用户他们的会话即将超时,你可以在你的_布局中使用一点javascript。如果你想跟踪登录的用户,等等。我建议使用信号器。并不是每一个丢失的会话都会发生那个事件。
public void Session_OnEnd()
{
if (System.Web.HttpContext.Current.Session["Val"] != null) // EXCEPTION
{
int TenantSessionId = (int)System.Web.HttpContext.Current.Session["Val"];
}
}