2013-02-11 15 views
6

आईआईएस 7 में होस्ट किए गए एएसपी.नेट वेबएपी में, क्या इसमें सत्र तक पहुंच है? ऐसा लगता है कि SessionHttpContext.Current पर शून्य है।एएसपी.नेट वेबएपी सत्र बनाम स्टेटिक वैरिएबल

वैश्विक चर को संग्रहीत करने के लिए इन दोनों के बीच क्या अंतर है?

private static Dictionary<string, string> ConnectionStrings 
    { 
     get 
     { 
      if (HttpContext.Current.Session["ConnectionStrings"] == null) 
       HttpContext.Current.Session["ConnectionStrings"] = new Dictionary<string, string>(); 

      return HttpContext.Current.Session["ConnectionStrings"] as Dictionary<string, string>; 
     } 
    } 

और

private static Dictionary<string, string> connectionStrings = new Dictionary<string, string>(); 

मैं सत्र या स्थैतिक चर का उपयोग करना चाहिए कनेक्शन तार कि गतिशील रूप से उत्पन्न कर रहे हैं (लंबी कहानी) स्टोर करने के लिए?

उत्तर

6

खैर, एक सत्र चर प्रति उपयोगकर्ता का मतलब है। एक स्थिर चर एक चर है जो सभी उपयोगकर्ताओं के बीच साझा किया जाएगा। इसलिए, मुझे नहीं पता कि कनेक्शन स्ट्रिंग प्रति उपयोगकर्ता क्यों स्टोर करेगा, लेकिन यदि आपको ऐसा करने की आवश्यकता है, तो आप एक स्थिर चर का उपयोग नहीं कर सकते हैं। अब, आप एक स्थिर चर का उपयोग कर सकते हैं और इसे एक शब्दकोश बना सकते हैं, जहां कुंजी उपयोगकर्ता है, और वह मान वह है जिसे आप स्टोर करना चाहते हैं। यह निश्चित रूप से काम करेगा।

कि सभी ने कहा करने के बाद, आप कुकीज़ का उपयोग कर सत्र की नकल कर सकते हैं (जो अंततः क्या सत्र वैसे भी (का उपयोग करना आमतौर पर) है): देखें: Accessing Session Using ASP.NET Web API