2012-08-31 10 views
5

पहले, जब मैंने एक गैर-सुपरसुर खाते (यानी पोर्टल विशिष्ट उपयोगकर्ता के रूप में) के रूप में एजेक्स को एजेक्स कॉल करने का प्रयास किया तो मेरा वेब सर्वर मेरे प्राधिकरण को साफ़ करने के लिए कुकीज़ वापस कर देगा। मैं posted a question about this और ऐसा लगता है कि उत्तर यह सुनिश्चित करना था कि portalid=xx मेरे जीईटी पैरामीटर में निर्दिष्ट किया गया था।पोस्ट एजेक्स अनुरोधों पर मुझे डॉटनेटनेट क्यों लॉग आउट करता है?

हालांकि, मुझे पता चला है कि यदि मैं POST अनुरोध में portalid=xx जोड़ता हूं, तो DotNetNuke अनदेखा करता है और किसी गैर-सुपरसुर खाते को लॉग आउट करता है।

मैं डीएनएन पोस्ट AJAX अनुरोधों के दौरान प्राधिकरण कैसे रख सकता हूं?

उत्तर

0

मुझे आपके लिए कुछ चीजें मिल गई हैं और यह देखने के लिए कि क्या उनमें से कोई भी आपकी समस्या का समाधान करता है या नहीं।

  • सुनिश्चित करें कि आप ScriptManagerProxy का उपयोग कर रहे हैं। यह एसीएक्स पृष्ठों को AJAX का उपयोग करने की अनुमति देता है जबकि मूल पृष्ठ AJAX का भी उपयोग कर रहा है।
  • पेज स्टेट पर्सिस्टेंस "मेमोरी" पर सेट होने पर लोगों की कई रिपोर्टें डीएनएन के साथ AJAX चलाने में सक्षम नहीं हैं। जो लोग इसका अनुभव करते हैं वे पेज स्टेट पर्सिस्टेंस को "पेज" पर स्विच करके इसे ठीक करने में सक्षम हैं। यह करने के लिए सबसे आसान तरीका है इस क्वेरी चलाने के लिए है:

    अद्यतन HostSettings सेट SettingValue = 'पी' जहां SettingName = 'PageStatePersister'

आप चलाने के बाद, आप पुनरावृत्ति करने के लिए की आवश्यकता होगी आवेदन पत्र। अगर आपके पास सर्वर तक पहुंच नहीं है, तो बस अपनी वेब.कॉन्फिग फ़ाइल में एक स्पेस या कैरिज रिटर्न जोड़ें (जो ऐप को रीसायकल करने के लिए मजबूर करेगा)।

  • आखिरकार, आप देख सकते हैं कि आपके पास यह web.config में है या नहीं। कभी कभी दूर करने में यह मदद मिलेगी:

    <system.web> < xhtmlConformance मोड = "विरासत"/> </system.web>

+0

क्या आपके पास इन संभावित समाधानों की जांच करने का मौका है? – Joshua

+0

क्षमा करें आज तक यह प्रयास करने में सक्षम नहीं था। दुर्भाग्य से, उन कार्यों में से कोई भी नहीं। मुझे शायद यह भी कहना चाहिए कि मैं एएसपी.नेट अजाक्स का उपयोग नहीं कर रहा हूं लेकिन मेरी पोस्ट करने के लिए jquery। – KallDrexx

1

मुझे लगता है कि मैं पूरी स्थिति पर एक अच्छा संभाल , और दुर्भाग्यवश ऐसा प्रतीत होता है कि एकमात्र सच्चा समाधान यह सुनिश्चित करना है कि प्रत्येक बच्चे के पोर्टल का उप-यूआरएल (उदाहरण के लिए portal.domain.comdomain.com/portal) के बजाय अपना सबडोमेन है।

समस्या यह है कि जब आपका पोर्टल 0 domain.com है लेकिन पोर्टल 1 domain.com/portal सबकुछ ठीक से काम करता है जब तक आपको .ashx फ़ाइल को AJAX के माध्यम से एक्सेस करने की आवश्यकता नहीं होती है। तब क्या होता है जब अनुरोध किया गया यूआरएल domain.com/DesktopModules/MyModule/Handler.ashx है, जिसमें /portal/ नहीं है, इस प्रकार डीएनएन को लगता है कि आप पोर्टल 0 पर अनुरोध कर रहे हैं और आपको लॉग आउट कर रहे हैं।

जबकि GET अनुरोध portal=1 पैरामीटर के साथ इसे दूर कर सकते हैं, यह POST अनुरोधों के लिए काम नहीं कर रहा है।

इसलिए, ऐसा लगता है कि सबसे अच्छा समाधान यह है कि आपका पोर्टल एक अलग सबडोमेन (portal.domain.com) पर है, और फिर आपको ऐसा कुछ खोने का जोखिम नहीं है।

+0

यह उत्तर समस्या के सही पड़ोस में होने की संभावना है। किसी भी लॉग आउट आमतौर पर यूआरएल में एक अस्पष्ट पोर्टल संदर्भ के कारण होता है, जिसके कारण अनुरोध पोर्टल को गलत तरीके से पहचानने का अनुरोध करता है कि अनुरोध संबंधित है। लॉग-आउट होने पर बिल्कुल समझना भी महत्वपूर्ण है। कभी-कभी यह अनुरोधों के समग्र समूह में मिलता है जो पृष्ठ दृश्य में जाते हैं, लेकिन ऐसा लगता है कि आप POST पर लॉग आउट हो जाते हैं- वास्तव में जब आप पहले ही लॉग आउट हो जाते हैं, और इससे कोई फर्क नहीं पड़ता कि अगला अनुरोध क्या होता है, यह हमेशा एक गैर प्रमाणीकृत प्रतिक्रिया में परिणामस्वरूप जा रहा है। –

संबंधित मुद्दे