当用户在我的asp.net网站(通过FormsAuthentication)登录时,我在当前会话中存储了一些关于它们的信息,例如他们的UserId,FirstName和其他非常基本的变量经常在各种网页上。Asp.Net会话在FormsAuthentication之前超时
问题是,即使会话超时设置为比FormsAuthentication超时更长,我注意到有时会重置当前会话(即session = null)。
1)我不明白为什么会发生。有任何想法吗?
2)发生这种情况时,用户仍然登录(FormsAuthentication尚未超时),但其当前会话不再包含任何数据。我想要做的是当当前会话超时时,他们被要求再次登录。为此,我需要检测会话超时,并在发生时将其注销。如何才能做到这一点?
3)这似乎有点矫枉过正。我不能直接在FormsAuthentication中存储会话中存储的任何内容(UserId,FirstName等)吗?如果是这样,怎么样?通过这种方式,无论当前会话如何,我都可以访问这些值(但在此情况下不再使用)。你看到这个逻辑有什么问题吗?如果没有,那怎么办?
Dupe? http://stackoverflow.com/questions/648992/session-timeout-in-asp-net – 2009-09-03 12:29:15
杜佩? http://stackoverflow.com/questions/316172/session-timeout-asp-net – 2009-09-03 12:30:24
你使用HttpContext.Current.User获取信息?? – 2009-09-03 12:35:14