मेरे पास एक ऐसा नियंत्रण है जिसे मैंने लिखा है जिसमें जावास्क्रिप्ट घटक और एक वेब सेवा घटक है।मैं एएसपीनेट फॉर्म प्रमाणीकरण/सत्र को सेट अंतराल AJAX वेब सेवा कॉल में नवीनीकरण से कैसे रोकूं?
Alert.SiteAlertService.GetAlerts(this._receivedAlertsHandler, this._errorReceivedAlertsHandler);
तो यह वेब सेवा जावास्क्रिप्ट प्रॉक्सी का प्रयोग किया जाता है:
setInterval(this._checkAlertsHandler, this._messageCheckInterval * 1000);
यह एक समारोह जो इतनी तरह एक वेब सेवा कॉल करता है कहता है: समस्या मैं आ रही है कि जावास्क्रिप्ट करने के लिए सेट कर दिया जाता है वेब सेवा तक पहुंचने के तरीके। मुद्दा यह है कि हमारे आवेदन में प्रमाणीकरण और टाइमआउट मान बन गया है, इसलिए यदि उपयोगकर्ता बहुत लंबे समय तक निष्क्रिय है तो यह उन्हें लॉग आउट कर देगा।
मेरी webservice कॉल स्पष्ट रूप से कुकी भेजती है जिसमें वेब सेवा के लिए सत्र और प्रपत्र प्रमाणीकरण कुंजी शामिल होती है। एएसपीनेट webservice तब स्वचालित रूप से सत्र और फॉर्म प्रमाणीकरण नवीनीकृत करता है। जब भी जावास्क्रिप्ट वेब सेवा हिट करता है तो यह मूल रूप से उपयोगकर्ता को जीवित रखता है। मुझे यह व्यवहार नहीं चाहिए, यह सिर्फ उस पर बाधा डालना चाहिए, ताकि यह जेएस नए संदेशों की जांच करने के लिए वेब सेवा मार रहा हो, भले ही उपयोगकर्ता ने हमारे आवेदन पर पोस्टबैक नहीं किया है (और प्रभावी रूप से निष्क्रिय है) अभी भी उन्हें लॉग आउट करें। यह नहीं हो रहा है :(
मैं क्या करना चाहूंगा कि वेब सेवा के लिए यह अंतराल कॉल किसी भी प्रमाणीकरण को नवीनीकृत नहीं करता है (सत्र नवीनीकरण मैं एक कुंजीपटल स्तर परिवर्तक का उपयोग करके कुंजीपटल कुंजी/मूल्य के साथ प्राप्त कर सकता हूं उन सत्र id, तो मैं न किसी भी सत्र स्तर चर का उपयोग करने के लिए)
कैसे मैं कि यह/अपने वेब सेवा/या नियंत्रण का तरीका बदल मैं यह चाहते की तरह काम करने के लिए?
मैं इस कोशिश की, अपने आवेदन के आधार में मेरी Web.config में जोड़ा। ऐसा प्रतीत होता है कि जब मेरी जावास्क्रिप्ट webservice को हिट करती है, तो यह अभी भी इसे नवीनीकृत कर रही है ... - मेरे पास साइट पर 1 मिनट तक टाइमआउट सेट है, और एक बार यह तार पर पहुंचने के बाद, यह सामान्य रूप से, इस जावास्क्रिप्ट के बिना चलने के बिना रीफ्रेश होगा और आपको वापस लॉगिन पेज पर डाल दिया। लेकिन जावास्क्रिप्ट चल रहा है और वेब सेवा को मार रहा है, यह रीफ्रेश करता है, और फिर भी आपको लॉग इन करता है। वेब सेवा जो इसे हिट करती है वह WebMethods पर EnableSession = true का भी उपयोग करती है और कक्षा ऑब्जेक्ट पर IRequireSessionSate भी होती है। क्या सत्र हो सकता है अपराधी यहाँ? – lslow00
मैंने इसे एक ऐसी वेब सेवा पर लगाए रखने की कोशिश की जो कि बहुत ही नंगे हड्डियों थी, इसमें कोई सत्र संदर्भ नहीं है, इत्यादि हैलो दुनिया लौटने वाला एक साधारण कार्य है। जब यह सेवा को हिट करता है तो स्लाइडिंग एक्स्पेरेशन बंद नहीं होता है, क्योंकि यह उपयोगकर्ता को कभी भी लॉग आउट नहीं करेगा। – lslow00
मैं वास्तव में इसका उत्तर उपयोग कर सकता हूं क्योंकि यह हमारे अनुप्रयोगों को पूरी तरह से नष्ट कर रहा है निष्क्रिय लॉगआउट तंत्र – lslow00