ServiceStack.net会话结束事件还是回调?

时间:2012-10-01 13:29:44

标签: .net session session-timeout servicestack

我正在使用带有身份验证的ServiceStack.Net并且正在使用自定义会话,所有这些都很有用。

我想知道是否有事件或回调,覆盖或任何其他机制来了解会话何时结束(即客户端丢弃),或会话何时到期?

像global.asax“Session_End”

之类的东西

感谢。

1 个答案:

答案 0 :(得分:1)

没有会话结束事件,因为无法确定何时从可用于缓存会话的任何后备Cache Providers中删除会话。

所以你不应该真的尝试依赖于此,你可以确定它是否已经过期(或者真的不再存在),如果它们被分配了一个现有的会话但现在不再存在,例如:

var hadSessionWithId = httpReq.GetSessionId();
var existingSession = Cache.Get<TUserSession>(SessionExtensions.SessionKey);
if (hadSessionWithId ?? existingSession == null) //Existing session invalidated.