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
无私奉献,好工控人,32个赞送给你!! 感谢楼主无私分享! 水贴也要有仪式感,我先来打卡~ 学到了学到了,这波分享太实用啦! 赞同 + 10086,完全说出了我的想法! 画面感太强了,仿佛身临其境! 不请自来,只为说一句:太精彩了! 打卡路过,支持优质原创内容~ 楼主辛苦啦,期待下一篇分享!
页:
[1]
2