【问题标题】:ASP.Net session state not available on another webpageASP.Net 会话状态在其他网页上不可用
【发布时间】:2012-01-15 07:51:34
【问题描述】:

我正在设计一个单页 Web 应用程序,所有操作都发生在 default.aspx 上。他登录后,我将用户的用户 ID 存储在 Session 中。我在 default.aspx 中使用 SWFUpload 将文件上传到 upload.aspx。 当 upload.aspx 收到一个文件时,它会检查 HttpContext.Current.Session 中的用户 ID。这曾经有效,但最近 HttpContext.Current.Session 没有关于我的会话的任何值。我一定是沿途改变了一些东西,但我不知道是什么。

更奇怪的是,它仍然适用于 IE,但不适用于 Firefox 或 Chrome。我还阅读了一些关于 Firefox 中的 Flash 错误地上传 IE 的会话 cookie 的内容(我在解释)。

如何从上传页面(Firefox 和 Chrome)检索 Session 数据?

【问题讨论】:

  • 请验证 cookie 是否启用(firefox 和 chrome)
  • 在 Firefox 和 Chrome 中都启用了 Cookie。

标签: asp.net swfupload


【解决方案1】:

这是非 IE 浏览器上的 Flash 和 cookie 的一个已知问题。这是讨论解决方法的post over at swfupload.org'just the code' over at snipplr。基本上,Flash 不会在 Firefox 和 Chrome 等上发送您的 cookie(或发送 IE cookie),因此您的 SessionID 不会与您在这些浏览器中的 upload.aspx 请求一起发送。不过,在 IE 中它会起作用。

上面的解决方法是在 post 或 url 中发送 SessionID 和 Authentication 票证,然后在 Global.asax 中拦截请求并在 ASP.NET 查找它们之前重新创建正确的 cookie 以检索身份验证或会话信息.

【讨论】:

  • 谢谢,我花了几个小时才找到这个答案。
猜你喜欢
  • 1970-01-01
  • 2011-06-07
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
  • 2017-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多