2010-07-09 59 views
2

我们在现有的ASP.NET Webforms应用程序中遇到问题。这是一款已成功运行多年的应用程序;我们正在添加一个Mobile部分,而启用了Javascript的Blackberry正在给我们带来麻烦。ASP.NET Webforms上的Blackberry正在丢失SessionID

我们打开了SessionState,SessionID存储在Cookie中。 Blackberry设备(同时测试5.0和4.6)或者根本不存储该值,或者删除该值,因为每次回发都会创建一个新会话而不是加载以前的会话。

当黑莓手机上的JavaScript被禁用时,该应用可以正常工作,但我们不能要求用户关闭JavaScript。

如果我们使用CookieLess会话,该应用程序可以正常工作,但这样做会影响现有网站的方式,但我们并不完全准备好。

有没有什么方法可以确保启用javascript的Blackberry设备正确地将sessionId存储在cookie中?我们应该考虑将该值存储在隐藏字段中吗?

+0

是您的网站http或https? – 2010-07-09 16:55:33

回答

0

从几次快速搜索中,听起来像BB设备在解析cookie和处理多个cookie时遇到问题。也许它只发送一个cookie,并且会话信息不发回。

也尝试使用URL编码cookie数据,也许另一个字符导致cookie浏览器错误地解析cookie,从而遗漏会话ID。

这个link似乎有帮助,并像一个类似的问题。

+0

谢谢,我一定会检查一下。但是,如果我在设备上关闭javascript,则问题不存在,所以可能是另一个问题。 – sgwill 2010-07-09 17:02:38

+0

没错。看起来像BB浏览器是非常hoakey与饼干。 – 2010-07-09 17:09:55

+0

我们尝试在网站上投掷SSL,但它不起作用(SCARY!BB代理与SSL搞混了!)。一旦我们将其减少到1个cookie,该网站就可以正常工作。 – sgwill 2010-07-12 10:47:30