1

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

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

像 global.asax "Session_End"

谢谢。

4

1 回答 1

1

不,没有Session End事件,因为无法确定何时从任何可用于缓存会话的支持缓存提供程序中删除会话。

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

var hadSessionWithId = httpReq.GetSessionId();
var existingSession = Cache.Get<TUserSession>(SessionExtensions.SessionKey);
if (hadSessionWithId ?? existingSession == null) //Existing session invalidated.
于 2012-10-02T00:46:26.810 回答