起 因: 因做Flash上传(在a.aspx),需要在flash向服务器保存数据过程中(提交到了b.aspx),需要b.aspx先取服务端有关session验证一下当前用户是否登录,以及有怎样的上传权限,保存方式,保存路径 等,以便允许上传,以防有人通过跨域或者本站非法页面向b.aspx提交数据。现在,问题产生了:在火狐下打开a.aspx通过flash想服务端b.aspx提交数据,两个页面各自产生一个SessionID,导致a.aspx中的session信息无法被b.aspx读取.
据一位朋友讲问题起因如下:
ActiveX模式下的Flash插件使用的是IE的链接池,所以获取的Session是一致的,而在Firefox下的是Plugin模式,使用自有的 链接,没有使用和服务端的链接池,所以产生了两个不同的链接,导致Session找不到了,(本人经验证,的确如此)
他提出如下解决办法:
可以通过页面将SessionID传给 Flash(这个好弄,flash在a.aspx中,可以通过参数方式或者Flasn内置请求获取),Flash在上传访问后台程序,如.net(b.aspx)时,将SessionID传给.net,.net(b.aspx)可通过此SessionID找到相应的Session
问题是,怎样在.net下通过SessionID找到相应的Session以获得该SessionID为标志的相关session的值?
Session[SessionID].ToString()就行了。
@江山万里起风云: 我想问一下,你的问题解决了没
mark
swfupload 也是一个Flash上传组件,而且很出名,我想原理都是一样的,可以去参考一下swfupload是怎么解决这个问题的