我正在设计一个单页面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)中检索会话数据?
答案 0 :(得分:3)
这是非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,以便检索身份验证或会话信息