我正在使用带有身份验证的ServiceStack.Net并且正在使用自定义会话,所有这些都很有用。
我想知道是否有事件或回调,覆盖或任何其他机制来了解会话何时结束(即客户端丢弃),或会话何时到期?
像global.asax“Session_End”
之类的东西感谢。
答案 0 :(得分:1)
没有会话结束事件,因为无法确定何时从可用于缓存会话的任何后备Cache Providers中删除会话。
所以你不应该真的尝试依赖于此,你可以确定它是否已经过期(或者真的不再存在),如果它们被分配了一个现有的会话但现在不再存在,例如:
var hadSessionWithId = httpReq.GetSessionId();
var existingSession = Cache.Get<TUserSession>(SessionExtensions.SessionKey);
if (hadSessionWithId ?? existingSession == null) //Existing session invalidated.