發(fā)布時(shí)間:2020-08-19 21:42 作者:獨(dú)孤劍 閱讀:1543
ASP.NET項(xiàng)目中應(yīng)用到Uploadify上傳插件,在后臺(tái)接受文件進(jìn)行身份的登錄驗(yàn)證時(shí),無(wú)法獲取Cookie和Session,起初只能使用無(wú)驗(yàn)證狀態(tài)上傳,這樣無(wú)疑給安全性帶來(lái)嚴(yán)重的后果。
項(xiàng)目中Uploadify版本:2.1.4,下面將講述實(shí)現(xiàn)獲取Cookie的方法。
1.在前端頁(yè)面獲取Cookie內(nèi)容, 將Cookie內(nèi)容放在scriptData中,在上傳文件進(jìn)行提交的時(shí)候,Cookie作為表單參數(shù)一起傳遞。
<script type="text/javascript"> $(document).ready(function () { $('#upfiles').uploadify({ 'scriptData': { 'cookie': '這里放入Cookie內(nèi)容' }, '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) { //錯(cuò)誤時(shí)觸發(fā) //錯(cuò)誤的類(lèi)型,有三種'HTTP', 'IO', or 'Security' //錯(cuò)誤的描述 if (fileObj.size > iMaxFileSize) { setTimeout('$("#upfiles").uploadifyCancel(' + queueId + ')', 2000); } } }); }); </script> <!--/Uploadify-->2.Upload.ashx頁(yè)面中獲取Cookie參數(shù)值,context.Request.Form["cookie"]
Uploadify v2.1.4使用的是flash進(jìn)行文件上傳,后臺(tái)無(wú)法直接讀取Cookie和Session,只能將Cookie作為表單參數(shù)一起傳遞,雖然需要額外的邏輯處理,但是可以解決用戶(hù)登錄驗(yàn)證問(wèn)題。
以上是Cookie獲取的解決辦法,如果使用的是Session,將表單參數(shù)內(nèi)容更換為SessionId,后端再通過(guò)SessionId獲取服務(wù)端Session信息。
微信打賞, 微信掃一掃
支付寶打賞, 支付寶掃一掃
如果文章對(duì)您有幫助,歡迎給作者打賞