我有一个web应用程序(由ASP.NET,VB.NET和javascript编写)在登录时存储cookie "session_key“。身份验证通过后,应用程序将跳转到下一页。在下一页上,有一个函数可以获取并检查cookie "session_key“,以确保用户之前已经在合理的时间内登录过。这个算法从第一天起就在不同的浏览器以及iPhone/iPad和Android上运行得很好。
不幸的是,由于我们的一些用户已经将他们的iPhone/iPad升级到了iOS6,这个算法在他们的设备上根本不起作用。用户可以在第一时间完美地登录应用程序,但是当用户注销并重新登录后,将无法再检索cookie "session_key“。
我跟踪了代码,发现在认证完成后,登录页面中存储了"session_key“,但当应用程序跳转到下一个页面时,它就消失了,浏览器中只有"ASP.NET_cookie”。
此问题仅出现在iOS6上,而不是iOS5上,因此与iOS6上的Wifi错误无关。
有人能帮帮忙吗?任何进展都将不胜感激。
发布于 2013-01-17 11:18:12
问题已经解决了!!
这是因为iOS6上的Safari缓存了带有参数值的函数,所以如果所有参数值都相同,Safari就会从内存中调用该函数。
为了解决这个问题,需要将时间戳传递到函数中,因此参数值不同,这会导致Safari再次从服务器而不是从内存调用函数。
https://stackoverflow.com/questions/14188678
复制相似问题