198366809 发表于 2021-10-5 15:44:54

ASP.NET Uploadify上传Flash控件无法传递Session和Cookie的解决方案

ASP.NET项目中应用到Uploadify上传插件,在后台接受文件进行身份的登录验证时,无法获取Cookie和Session,起初只能使用无验证状态上传,这样无疑给安全性带来严重的后果。
项目中Uploadify版本:2.1.4,下面将讲述实现获取Cookie的方法。
1.在前端页面获取Cookie内容, 将Cookie内容放在scriptData中,在上传文件进行提交的时候,Cookie作为表单参数一起传递。<script type="text/javascript">
    $(document).ready(function () {
      $('#upfiles').uploadify({
            'scriptData': {
                'cookie': '这里放入Cookie内容'
            },
            'uploader': 'uploadify/v2.1.4/uploadify.swf',
            'cancelImg': 'uploadify/v2.1.4/cancel.png',
            'buttonImg': 'uploadify/v2.1.4/upload-image.png',
            'width': 80,
            'height': 25,
            'buttonText': '选择文件',
            'script': 'Upload.ashx',
            'fileDataName': 'filedata',
            'fileDesc': '*.jpg;*.jpeg;*.gif;*.png;',
            'fileExt': '*.jpg;*.jpeg;*.gif;*.png;',
            'sizeLimit': 1024 * 1024 * 6, // 文件大小限制 6M
            'simUploadLimit': 10,
            'multi': false,
            'auto': true,
            'onComplete': function (vent, queueId, fileObj, response, data) {
                //上传成功
                concole.log(jQuery.parseJSON(response));
            },
            'onError': function (event, queueId, fileObj, errorObj) {
                //错误时触发
                //错误的类型,有三种'HTTP', 'IO', or 'Security'
                //错误的描述
                if (fileObj.size > iMaxFileSize) {
                  setTimeout('$("#upfiles").uploadifyCancel(' + queueId + ')', 2000);
                }
            }
      });

    });
</script>
<!--/Uploadify-->2.Upload.ashx页面中获取Cookie参数值,context.Request.Form["cookie"]

Uploadify v2.1.4使用的是flash进行文件上传,后台无法直接读取Cookie和Session,只能将Cookie作为表单参数一起传递,虽然需要额外的逻辑处理,但是可以解决用户登录验证问题。
以上是Cookie获取的解决办法,如果使用的是Session,将表单参数内容更换为SessionId,后端再通过SessionId获取服务端Session信息。
来源:C#社区
原文:https://www.hicsharp.com/a/980d75042d8e4973b2cb84f5245858d8​

吴建豪 发表于 2021-10-5 16:20:52

无私奉献,好工控人,32个赞送给你!!

淡定yong 发表于 2021-10-5 17:34:36

感谢楼主无私分享!

哦哦啊咯0哦可 发表于 2025-11-12 14:47:36

水贴也要有仪式感,我先来打卡~

c330330 发表于 2025-11-12 15:18:40

学到了学到了,这波分享太实用啦!

爽牛牛 发表于 2025-11-12 16:25:34

赞同 + 10086,完全说出了我的想法!

信思人 发表于 2025-11-12 18:59:55

画面感太强了,仿佛身临其境!

wx_I49R1d0b 发表于 2025-11-12 19:09:51

不请自来,只为说一句:太精彩了!

朱发文 发表于 2025-11-16 20:02:34

打卡路过,支持优质原创内容~

Lily 发表于 2025-11-16 20:38:56

楼主辛苦啦,期待下一篇分享!
页: [1] 2
查看完整版本: ASP.NET Uploadify上传Flash控件无法传递Session和Cookie的解决方案