2011-05-05 19 views
6

मेरे वेब एप्लिकेशन में मुझे अपने वेब एप्लिकेशन तक पहुंचने वाले अधिकतम उपयोगकर्ता को प्रतिबंधित करने की आवश्यकता है। उपयोगकर्ताओं में से कोई भी एक अलग गुण फ़ाइल में कॉन्फ़िगर नहीं किया गया है। मैंने अलग-अलग ट्रैक करने के लिए एक HttpSessionListener इंटरफ़ेस बनाया है उपयोगकर्ता लेकिन समस्या का सामना करना पड़ रहा है यह है कि एक उपयोगकर्ता ब्राउज़र के कई उदाहरणों का उपयोग करने का अनुरोध कर सकता है और उपयोगकर्ताओं की संख्या 1 से बढ़ जाती है, भले ही एक ही उपयोगकर्ता अलग ब्राउज़र उदाहरण के साथ उपयोगकर्ता को अलग-अलग आईपी पते या किसी अन्य के आधार पर उपयोगकर्ताओं को गिनने की आवश्यकता हो। अद्वितीय पैरामीटरवेब अनुप्रयोग के लिए उपयोगकर्ता की अधिकतम संख्या

+3

और एक ही सार्वजनिक आईपी के पीछे उपयोगकर्ताओं के बारे में क्या? – Joe

+0

कार्यालय – Lalchand

+0

कार्यालय में उपयोग किए गए इंट्रानेट.ट्स में उपयोग किया जाने वाला एप्लिकेशन यदि लॉग इन विकल्प नहीं हैं तो मैं कहूंगा कि कुकीज के लिए एक आवश्यकता जोड़ें, कुकीज़ सक्षम किए बिना उपयोगकर्ता तुरंत अस्वीकार कर दिए जाते हैं। सत्रों का उपयोग करें, फिर आप एक अनुप्रयोग स्तर काउंटर के माध्यम से गिनती का प्रबंधन कर सकते हैं और एक नए उपयोगकर्ता के पास रिक्त सत्र var होगा, यदि सीमा है, तो उपयोगकर्ता अनुरोध को अस्वीकार कर दें अन्यथा जारी रखें और सत्र var और +1 को काउंटर करने के लिए सेट करें। Idlers के लिए सत्र समय समाप्ति भी तो काउंटर सही ढंग से नीचे चला जाता है। काउंटर परिवर्तन भी दौड़ की स्थिति सुरक्षित होना चाहिए, किसी भी तरह से शुभकामनाएँ! –

उत्तर

3

सत्र कुकीज़ का उपयोग करने की संभावना हो सकती है - यदि नए कनेक्टेड उपयोगकर्ता के पास सत्र कुकी नहीं है, तो उन्हें एक दें और अपने काउंटर को बढ़ाएं, अन्यथा काउंटर में वृद्धि न करें।

+0

क्या होगा यदि क्लाइंट ब्राउज़र में कुकीज़ अवरुद्ध हों – Lalchand

+1

@Lalchand जो आपको दो अलग-अलग उपयोगकर्ताओं और दो उपयोगकर्ताओं के बीच एक उपयोगकर्ता के बीच अंतर करने से रोक देगा, लेकिन यदि आप कुकी का उपयोग नहीं कर सकते हैं तो आप एक सत्र चर निर्दिष्ट करने में सक्षम होना चाहिए, और वह यदि कोई उपयोगकर्ता एक ही ब्राउज़र में वेबसाइट को दो बार खोलता है तो वांछित व्यवहार होना चाहिए। –

+0

मुझे लगता है कि एक कार्यालय के इंट्रानेट में आप सभी ब्राउज़रों को आपके ऐप से कुकीज़ स्वीकार करने के लिए लागू कर सकते हैं। – ZoolWay

1

उपयोगकर्ता लॉगिन फॉर्म के पीछे अपना वेबैप छुपाएं और लॉग-इन किए गए उपयोगकर्ताओं की मात्रा के आधार पर प्रतिबंधित करें।

+0

और शायद 5 मिनट की तरह अपेक्षाकृत कम समय-समय जोड़ें। तो निष्क्रिय कनेक्शन ऐप को हॉगिंग नहीं कर रहे हैं। –

2

आप नहीं जानते कि एक ही उपयोगकर्ता विभिन्न उपयोगकर्ता उदाहरणों का उपयोग कर रहा है, साथ ही आप यह नहीं जान सकते कि कोई उपयोगकर्ता दो अलग-अलग कंप्यूटरों का उपयोग कर रहा है या नहीं।

आप प्रति उपयोगकर्ता खुले सत्रों की अधिकतम अनुमत संख्या को प्रतिबंधित कर सकते हैं, लेकिन ध्यान दें कि कुकी केवल एक सीरियल नंबर है जिसे ब्राउज़र के किसी अन्य उदाहरण में हेडर के रूप में इंजेक्शन दिया जा सकता है। यदि उपयोगकर्ता एक ही सबनेटवर्क के पीछे है, तो आप उस मामले को उसके आईपी पते से भी अलग नहीं कर पाएंगे।

मेरा मतलब है, जो भी ग्राहक पक्ष के दायरे तक पहुंचता है, आपके नियंत्रण में कोई मौका नहीं है। तो, मुझे पूरा यकीन है कि यद्यपि आप संभवतः कुछ बाधाओं को जोड़ सकते हैं, आप कभी भी इसे नियंत्रित नहीं कर पाएंगे।

  • केवल एक करने के लिए प्रवेश प्रतिबंधित करें:

    वैसे भी, यहाँ कुछ बाधाएं हैं।

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

यह केवल आपके लिए एक वास्तविक समस्या नहीं है।

उदाहरण के लिए एचपी से "गुणवत्ता केंद्र" इस ​​तरह काम करता है: वे वर्तमान सक्रिय लॉगिन की संख्या को गिनते हैं। यदि एक साथ लॉग इन की सीमा तक पहुंच है, तो आप एक नए लॉगिन के साथ लॉग इन नहीं कर सकते हैं।

यह बहुत अच्छी तरह से काम करता है।

लेकिन, यदि आप पहले से जुड़े लॉगिन का उपयोग करते हैं, तो आप एप्लिकेशन का उपयोग कर सकते हैं। तो एक ही लॉगिन का उपयोग करने वाले दो उपयोगकर्ता एक ही समय में काम कर सकते हैं।

अभी भी एक अच्छा समाधान एक विचार है और विकसित करने के लिए बहुत जटिल नहीं है।

0

यह सा पागलपन समस्या मैं कभी का सामना करना पड़ा हो गया है, और केक पर टॉपिंग है

मैं विभिन्न उपयोगकर्ताओं लेकिन समस्या का सामना कर रहा हूँ ट्रैक करने के लिए एक HttpSessionListener इंटरफ़ेस बनाया है है एक उपयोगकर्ता है कि ब्राउज़र के कई उदाहरणों का उपयोग करने का अनुरोध कर सकते हैं और उपयोगकर्ताओं की संख्या 1 से बढ़ जाती है, भले ही एक ही उपयोगकर्ता अलग ब्राउज़र इंस्टैंक

गंभीरता से ?? जो भी आवश्यकताओं के साथ आया था। आपको जिस समस्या को हल करने की आवश्यकता है वह पागल आवश्यकता है, और गंभीरता से, पागल चीजों को लागू न करें क्योंकि बीए भ्रमित हो गया और अपना काम नहीं किया।

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