2011-07-07 12 views
5

में सत्रों की संख्या की संख्या मुझे सत्रों की संख्या गिनने की आवश्यकता है, लेकिन जब मैं कहता हूं कि सत्रों की संख्या 2 हैं तो कुछ काम करें। नीचे दिया गया उदाहरण मेरा कोड है:ASP.net/c#

// count curent session in order to keep two player 
    if (HttpContext.Current.Session.Count == 2) 
    { 
    Response.Redirect("update.aspx"); 
    } 

मैं उपरोक्त कोड को कोड में पीछे रखता हूं। क्या कोई अन्य तरीका है जो मैं कह सकता हूं: यदि सत्रों की संख्या 2 अन्य हैं ...

+0

गणना-संपत्ति संग्रह में आइटमों की संख्या प्राप्त करने के लिए गणना संपत्ति का उपयोग किया जाता है। –

+0

सत्र ऑब्जेक्ट में कुछ एएसपीनेट सत्र भी शामिल हैं, न केवल आपके द्वारा रखे गए हैं। आप लाइन ब्रेक क्यों नहीं डालते (शॉर्टकट कुंजी: एफ 9) और गिनती देखते हैं? – iamserious

+0

कभी-कभी एक ही ब्राउज़र में 2 विंडो में खुलता है (दो सत्रों के रूप में नहीं गिना जाएगा। कभी-कभी विभिन्न ब्राउज़र से भी एक ही समस्या हो सकती है। कृपया दो सिस्टम से वेबपृष्ठ खोलें (मुझे यकीन नहीं है; क्षमा करें) – tamilnad

उत्तर

2

यह उस उपयोगकर्ता के लिए सत्र में संग्रहीत सत्र चर की गणना है (msdn reference) ... की संख्या नहीं वर्तमान में मौजूद उपयोगकर्ता सत्र।

आपको सत्र के बाहर सत्र गणना को स्टोर करने की आवश्यकता होगी ... शायद कैश या एप्लिकेशन कैश में।

यहाँ कुछ अतः सवालों के मदद करने के लिए यह लागू कर रहे हैं:

0

आप एक एक आवेदन में सक्रिय सत्र की संख्या क्वेरी करने के लिए WMI का उपयोग कर सकते हैं।

+0

कैसे करें? कोई असली नमूना * डब्लूएमआई * का उपयोग कर इसके बारे में कोड? ** सभी मामलों ** के लिए काम करता है ** जैसे < 'मोड _SQLServer_ और' InProc' है? – Kiquenet

+0

डब्ल्यूएमआई का उपयोग करके इसके बारे में कोई असली नमूना कोड कैसे? ** सभी मामलों के लिए काम करता है ** जैसे ' 'मोड ** SQLServer और InProc ** है? ' सत्र_स्टार्ट/सत्र_इंड तरीके से समस्या है कि सत्र_इंड केवल" इनप्रोक "सत्रों के लिए बुलाया जाता है, भले ही सत्र स्टेटसर्वर या एसक्यूएल सर्वर में संग्रहीत न हों । –

+0

शायद यह किसी के लिए काम करेगा http://www.activexperts.com/admin/scripts/wmi/vbscript/0433/? किसी भी कारण से यह समाधान मुझे हर मीट्रिक के लिए शून्य वापस देता है ... लेकिन वह माँ मैं अपनी मशीन के साथ कुछ गलत हो। इस वेबपृष्ठ पर स्क्रिप्ट को blah.vbs के रूप में सहेजें और इसे cmd.exe के भीतर चलाएं –

-2

नोट: इस उदाहरण सिर्फ एक नौसिखिया प्रोग्रामर (एएसपी विशेषज्ञ programers के लिए नहीं)

1) फ़ाइल Global.asax.cs और आवेदन स्टार्टअप समारोह की पहचान करने और फिर एक सत्र काउंटर चर जोड़ने के लिए जाओ के लिए है। इस तरह ...

void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup          
     Application.Add("NOF_USER_SESSION", 0); 

2) तो फिर एक ही GLobal.asax.cs फ़ाइल को रखने में जोड़ने/क्रमशः सत्र-स्टार्टअप में उपयोगकर्ता मायने रखता है और सत्र-Endup समारोह को कम करने ... इस तरह ...

 void Session_Start(object sender, EventArgs e) 
     { 
      // Code that runs when a new session is started 
      Application["NOF_USER_SESSION"] =   (int)Application["NOF_USER_SESSION"] + 1; 
.. 
.. 
     void Session_End(object sender, EventArgs e) 
     { 
      // Code that runs when a session ends. 
      // Note: The Session_End event is raised only when the sessionstate mode 
      // is set to InProc in the Web.config file. If session mode is set to StateServer 
      // or SQLServer, the event is not raised. 
      Application["NOF_USER_SESSION"] = (int)Application["NOF_USER_SESSION"] - 1; 
.. 
.. 

3) फिर इस प्रोग्राम स्तर परिवर्तनीय (int)Application["NOF_USER_SESSION"] का उपयोग अपने प्रोग्राम के अंदर कहीं भी कर सकते हैं।