2010-05-05 150 views
4

我在寻找方法来读取和写会话数据与没有HttpContext。当前如何获取会话数据与出HttpContext.Current,按会话ID

为什么我赢了呢?因为我希望在页面关闭和卸载后,对用户Session进行一些操作。

例如,一个用户加载并看到一个页面,然后我创建一个线程来进行一些操作并让用户去。在这个线程内,我喜欢读取会话数据,但在这种情况下,HttpContext。目前不再存在。

那么有没有一种方法可以读懂会话数据,只知道会话ID。

我将会话存储在SQL服务器中,我看到它们。它在桌子上ASPStateTempSessions :)

我怎样才能读取他们“脱机”并操纵他们?

谢谢先进,

回答

0

仍然不是很清楚为什么你可能想这样做,但可能实际上并不需要做它在Session_End中()。此时,无论如何,使用会话数据可能为时已晚(在此之前,我已阅读过一些文章)。什么可能是更好的解决方案是实际上尝试处理会话数据当您的应用程序实际上具有上下文

例如:

没有什么能阻止你的应用程序在后台创建一个新的线程异步请求(甚至是不同的应用程序,如Windows服务,例如)在特定的会话变量你想更新或已设置。这样,您的应用程序将能够访问当前的HttpContext以及所有的会话数据。

不知道这是否会有所帮助,但它是值得一试;)

理查德。

+0

@Richard感谢您的重播。亲爱的理查德我在页面上使用了异步线程,但这有些不同,我要求一些有点复杂的原因来分析。以一种速度来分类。我正在研究许多解决方法,但我只是想知道是否有任何方法通过了解sessionid来读取任何用户的会话数据。用其他的话来说,可以说我需要调试来自所有用户的所有会话数据并查看它们的最新信息 - 我该如何做? – Aristos 2010-05-05 16:15:46

0

我可能是有点晚了,但... 今天,我发现有关: System.Web.HttpRuntime.Cache

我知道是不是同一个会话,但我认为这是更好的替代方案, D b。 此致敬礼。

+0

谢谢你的回答。会话数据是每个用户的,但缓存是全局的。我寻找类似的东西,以便能够在独立线程上使用会话用户数据。 – Aristos 2010-12-06 09:45:45