मैं याहू यूआई लाइब्रेरी का हिस्सा याहू अपलोडर का उपयोग कर रहा हूं, जो मेरी एएसपी.Net वेबसाइट पर उपयोगकर्ताओं को फाइल अपलोड करने की अनुमति देता है। उन अपरिचित लोगों के लिए, अपलोडर फ़ाइल ओपन संवाद पर अधिक नियंत्रण देने के लिए एक फ्लैश ऐपलेट का उपयोग करके काम करता है। मैं फ़ाइल प्रकारों के लिए एक फिल्टर, आदि निर्दिष्ट कर सकते हैं एक से अधिक फ़ाइलों की अनुमति देने के चुने जाने की यह बहुत अच्छा है, लेकिन यह निम्न दस्तावेज सीमित है:क्या मैं एक छिपे हुए फॉर्म फ़ील्ड में एएसपी.Net सत्र आईडी डाल सकता हूं?
एक ज्ञात फ्लैश बग की वजह से, अपलोडर Windows में फ़ायरफ़ॉक्स में चल रहा होता है अपलोड के साथ सही कुकीज़ नहीं भेजें; फ़ायरफ़ॉक्स कुकीज़ भेजने के बजाय, यह संबंधित डोमेन के लिए इंटरनेट एक्सप्लोरर की कुकीज़ भेजता है। एक कामकाज के रूप में, हम या तो एक कुकीज अपलोड विधि का उपयोग या अपलोड अनुरोध में document.cookie संलग्न करने का सुझाव देते हैं।
इसलिए, यदि कोई उपयोगकर्ता फ़ायरफ़ॉक्स का उपयोग कर रहा है, तो मैं फ़ाइल अपलोड करते समय अपने सत्र को जारी रखने के लिए कुकीज़ पर भरोसा नहीं कर सकता। मुझे उनके सत्र की ज़रूरत है क्योंकि मुझे यह जानने की जरूरत है कि वे कौन हैं! समाधान के लिए, मैं आवेदन वस्तु thusly उपयोग कर रहा हूँ:
Guid UploadID = Guid.NewGuid();
Application.Add(Guid.ToString(), User);
तो, मैं एक अद्वितीय ID बना रहा हूं और आवेदन दायरे में Page.User
वस्तु स्टोर करने के लिए एक प्रमुख के रूप में उपयोग। जब फ़ाइल अपलोड हो जाती है तो मैं POST में एक चर के रूप में आईडी शामिल करता हूं। फिर, हैंडलर कि फाइल अपलोड स्वीकार करता है में, मैं उपयोगकर्ता वस्तु thusly हड़पने:
IPrincipal User = (IPrincipal)Application[Request.Form["uploadid"]];
यह वास्तव में काम करता है, लेकिन यह दो स्पष्ट कमियां भी हैं:
आईआईएस तो ऐप्लिकेशन पूल, या यहां तक कि एप्लिकेशन अपलोड पृष्ठ पर आने के समय भी एप्लिकेशन को पुनरारंभ किया जाता है, और वास्तव में एक फ़ाइल अपलोड करता है, उनके "अपलोडिड" को एप्लिकेशन स्कोप से हटा दिया जाता है और अपलोड विफल हो जाता है क्योंकि मैं उन्हें प्रमाणित नहीं कर सकता।
अगर मैं कभी भी एक वेब खेत में बड़े पैमाने (संभवतः भी एक वेब उद्यान) परिदृश्य, यह पूरी तरह से टूट जाएगा। मैं चिंतित नहीं हो सकता, सिवाय इसके कि मैं भविष्य में इस ऐप को स्केल करने की योजना बना रहा हूं।
क्या किसी के पास बेहतर तरीका है? क्या POST वैरिएबल में वास्तविक ASP.Net सत्र आईडी को पास करने का कोई तरीका है, फिर सत्र को पुनर्प्राप्त करने के लिए दूसरी तरफ उस आईडी का उपयोग करें?
मैं मैं Session.SessionID
के माध्यम से सत्र ID प्राप्त कर सकते हैं, और मैं अगले पृष्ठ पर पोस्ट करने के लिए YUI उपयोग करने के लिए कैसे पता है। मुझे नहीं पता कि राज्य सर्वर से सत्र को पकड़ने के लिए SessionID
का उपयोग कैसे करें।
हाँ, मैं एक स्थिति सर्वर का उपयोग कर रहा सत्र स्टोर करने के लिए है, इसलिए वे आवेदन/आईआईएस पुनरारंभ जारी रहती है, और एक वेब खेत परिदृश्य में काम करेंगे।
यह मैं वास्तव में क्या ढूंढ रहा था। धन्यवाद! –
अरे ... लिंक टूटा हुआ प्रतीत होता है .. क्या आप अपडेट कर सकते हैं? – Mulki
हाँ, हमें इसकी आवश्यकता है! कृपया एक नया लिंक प्रदान करें! – pilavdzice