我正在设计一个单页 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)检索会话数据?
这是非 IE 浏览器上 Flash 和 cookie 的一个已知问题。这是一个发布在 swfupload.org讨论解决方法,以及sniplr 上的“只是代码”。基本上,Flash 不会在 Firefox 和 Chrome 等浏览器上发送您的 cookie(或发送 IE cookie),因此您的 SessionID 不会与这些浏览器中的 upload.aspx 请求一起发送。但在 IE 中它会起作用。
上面的解决方法是在 post 或 url 中发送 SessionID 和身份验证票证,然后在 Global.asax 中拦截请求并重新创建正确的 cookie,然后 ASP.NET 查找它们以检索身份验证或会话信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)