我正在构建一个小型Web应用程序,在我的应用程序中,我使用会话对象来存储服务器调用信息。这在Firefox \ Chrome \ IE中运行得很好,但在Safari中似乎失败了。在Safari中,会话一直忘记我已将值存储在其中。
为什么会这样?可以做些什么?
答案 0 :(得分:5)
会话基于存储在cookie中的id。服务器使用此Id链接到服务器上的会话。很可能饼干都在这里。加载提琴手或开启跟踪以查看正在发送的cookie ...您应该看到其中包含aspnetsessionid的那个,如果不是您的浏览器问题已关闭它们。
答案 1 :(得分:0)
您可能还想查看此处:Facebook API and Safari
看起来,如果您在建立Cookie时发送了任何重定向,它们将被视为第三方Cookie,并可能导致服务器端出现问题。
答案 2 :(得分:0)
如果Safari上的设置设置为不允许使用Cookie,则会失败。我在写一个iphone网络应用程序时遇到了同样的问题。我启用了cookie,一切正常。
答案 3 :(得分:-3)
Session的整个想法是值存储在服务器端。 Safari不可能导致服务器遗忘。该值未存储在会话中,或者Safari未能呈现会话值。
尝试使用调试器确认在将值传递给Session时以及当您尝试从Session中检索值时,Session是否保持正确的值。