2015-05-17 9 views
28

पर निष्क्रियता के बाद काम करना बंद करें मैं Azure (json)/Webmethod फ़ंक्शंस का उपयोग करने वाले पृष्ठों वाले Azure सर्वर का परीक्षण कर रहा हूं।HttpContext.Current.User.Identity.Is प्रमाणीकृत बंद करें Azure

उनमें से कुछ फ़ंक्शन कोड चलाने से पहले HttpContext.Current.User.Identity.IsAuthenticated जांचें। दुर्भाग्यवश, यदि कोई उपयोगकर्ता लॉग इन है और पृष्ठ सर्वर पर पूर्ण पोस्टबैक अनुरोध नहीं करता है, तो केवल वे वेबमाइड्स कार्य करता है जो HttpContext.Current.User.Identity.IsAuthenticated किसी भी त्रुटि के बिना कुछ मिनटों के बाद पूरी तरह से चलना बंद कर देता है। वे else कोड ब्लॉक भी नहीं चलाते हैं (नीचे देखें)।

मैंने उन पृष्ठों का स्थानीय सर्वर पर परीक्षण किया है और सबकुछ ठीक काम करता है, यहां तक ​​कि निष्क्रियता की लंबी अवधि के बाद भी। यहाँ एक webmethod इस प्रकार

[WebMethod] 
public static string serviceMenu(int IDservice) 
{ 
     StringBuilder SBphotoMenu = new StringBuilder();    
     if (HttpContext.Current.User.Identity.IsAuthenticated) 
     { 
      // Do stuff 
     } 
     else 
     { 
      // Do other stuff 
     } 

     return SBphotoMenu.ToString(); 
} 

मैं webmethod फोन कर रहा हूँ का एक उदाहरण है:।

function serviceMenu(IDservice) { 
$.ajax({ 
    type: "POST", 
    url: "/UserControls/serviceMenu", 
    data: "{ IDservice: " + IDservice }", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (data) { 
     // Do Stuff   
    } 
}) 
} 

यह व्यवहार तब होता है केवल यदि उपयोगकर्ता के प्रवेश अब अगर उपयोगकर्ता प्रवेश न होने पर तो सभी कार्य Azure पर भी ठीक से काम करते हैं।

वास्तव में, जब वेबमाइड्स चलना बंद कर देते हैं और मैं पृष्ठ को रीफ्रेश करता हूं तो उपयोगकर्ता अभी भी लॉग इन होता है और वेबमाइड्स फिर से चलना शुरू होता है लेकिन केवल कुछ मिनटों के लिए और फिर वही व्यवहार फिर से होता है।

क्या गलत हो रहा है?

+0

क्या कोई विशेष कारण है कि आप ग्लोबल.एक्सएक्स या कुछ बेस क्लास के बजाय विधि पर उपयोगकर्ता प्रमाणीकरण डालते हैं? –

+0

मैं जांच कर रहा हूं कि कोई उपयोगकर्ता प्रमाणीकृत है या नहीं, उस वेबमाइड्स – Gloria

+0

में तदनुसार स्ट्रिंग बनाने के लिए, तो काम करना बंद करने का क्या मतलब है? क्या आपका मतलब यह है कि जब प्रमाणीकरण काम करना बंद कर देता है तो यह हमेशा '' '''' तर्क दर्ज करता है? –

उत्तर

0

समस्या सत्र चर के कारण होती है और स्वचालन नहीं होती है। असल में सत्र स्थिति को "इनप्रोक" विधि का उपयोग करके एज़ूर में एएसपी.NET अनुप्रयोगों के लिए नहीं रखा जाता है। Azure अन्य विधियों का उपयोग करता है, जिनमें से कुछ महंगा हैं: टेबल स्टोरेज, एसक्यूएल एज़ूर, या विंडोज एज़ूर कैशिंग।

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