【发布时间】:2011-10-13 12:38:35
【问题描述】:
在 Web 应用程序中,出于某种原因,我需要 SessionID,因此,我将其保存在数据库中。应用程序在启动之前做了两次重定向,我发现它获取了两个 SessionID。第二个还在。
为什么会有这种行为?任何想法?如何防止将其保存在数据库中的一条记录中。
抱歉,我无法发布代码,它与另一个逻辑复合。
【问题讨论】:
-
为什么需要 sessionid?
在 Web 应用程序中,出于某种原因,我需要 SessionID,因此,我将其保存在数据库中。应用程序在启动之前做了两次重定向,我发现它获取了两个 SessionID。第二个还在。
为什么会有这种行为?任何想法?如何防止将其保存在数据库中的一条记录中。
抱歉,我无法发布代码,它与另一个逻辑复合。
【问题讨论】:
丢失/重新开始会话的原因可能有上百万种。没有您的代码,很难提供建议。
您可以自己尝试的一件事是在 global.asax 文件中使用 Session_End 事件,只要您使用的是 inProc 会话。在那里放一些代码,让它告诉你会话何时结束,这样你就可以追踪问题/导致它在你的应用程序中结束的原因。
您可以查看的另一个想法是您的重定向方法。确保您保留会话,如下所示:Response.Redirect("~/default.aspx", false)。
【讨论】:
另一种可能性是您可能没有在第一次会话中添加任何内容。默认情况下,您会在每次回发时获得一个新的 sessionID除非您在会话中添加了一些内容。
【讨论】: