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# 使用 CSVHelper 操作 csv 文件, .net core, .net framework 读取写入 csv 文件
C# 实现字符串文本换行的方法,文本如何换行
C# 如何循环读取文件每一行文本内容
C# DateTime AddMonths 的错误用法导致跳过日期
C# 全角转换半角,半角转换为全角