2012-12-21 28 views
7

में उपयोगकर्ताओं की सीमा संख्या मैं सी # का उपयोग कर क्लाइंट-सर्वर एप्लिकेशन विकसित कर रहा हूं। असल में सर्वर एक एसक्यूएल सर्वर है और ग्राहकों को सी # में विकसित किया गया है। मैं जो जानना चाहता हूं वह किसी भी समय एप्लिकेशन का उपयोग कर उपयोगकर्ताओं की संख्या को सीमित करने का सबसे अच्छा तरीका है (यदि कोई है) - कहें कि मैं दो उपयोगकर्ताओं तक सीमित होना चाहता हूं। क्या मैं SQLserver तक पहुंच को सीमित कर दूंगा?सी # एप्लिकेशन

+4

क्या आप इसे लाइसेंस देने के मुद्दों के लिए कर रहे हैं? और, क्या आपके पास कोई अन्य ऐप सर्वर नहीं है? – ryadavilli

+0

हां महोदय, मैं इसे लाइसेंसिंग के लिए कर रहा हूं और साथ ही मैं सीमित ग्राहकों को अपने आवेदन का उपयोग करना चाहता हूं। मेरे बीच में कोई अन्य ऐप सर्वर नहीं है। मेरा एसक्यूएल सर्वर डेटाबेस एक मशीन पर है (डेटाबेस सर्वर कहा जाता है) और मेरा एप्लीकेशन कोड क्लाइंट मशीन पर है। मुझे नहीं पता कि सीमित ग्राहकों तक पहुंच कैसे दी जाए। मेरी अंग्रेजी के लिए क्षमा करें। उत्तर देने के लिए धन्यवाद – Vinit

+0

"सीमित ग्राहकों तक मेरे आवेदन का उपयोग करना चाहते हैं" क्या आप इसे अपने प्रश्न में आगे समझा सकते हैं। यह लाइसेंसिंग से परे चला जाता है, जो एक साधारण गिनती के साथ प्रबंधित करना आसान होता। – ryadavilli

उत्तर

2

आप संभवतः की आवश्यकता होगी है उपयोगकर्ताओं की समवर्ती संख्या की पहचान करने के लिए "सत्र" की अवधारणा।

यदि यह एक असफल-सुरक्षित तरीके से किया जाना है, तो आपको अपने डीबी सर्वर और क्लाइंट के बीच एक एप्लिकेशन लेयर पेश करना होगा। फिर आप उपयोगकर्ताओं के लिए लॉगिन और लॉगऑफ करने के तरीके प्रदान कर सकते हैं।

प्रत्येक लॉगिन पर आपको "समवर्ती उपयोगकर्ताओं" की गिनती बढ़ाने की आवश्यकता होगी और प्रत्येक लॉगऑफ पर आपको कमी की आवश्यकता होगी।

आपको सत्र समय-समय की अवधारणा को पेश करने की आवश्यकता हो सकती है क्योंकि कुछ क्लाइंट लॉगफ विधि का आह्वान किए बिना बंद हो सकते हैं।

अनुमत उपयोगकर्ताओं की संख्या को लाइसेंस से जोड़ा जा सकता है।

+0

ध्यान दें कि इस तरह की गिनती के साथ आपको केवल प्रत्येक ग्राहक से एक कनेक्शन बनाना चाहिए। यह आसानी से आवेदन की इमारत को काफी कठिन बना सकता है। –

0

आप बस व्यक्तिगत लाइसेंस बेच सकते हैं।

इस तरह से एप्लिकेशन को एक विश्वसनीय सर्वर पर अपना लाइसेंस जांचता है (SQL सर्वर हो सकता है)।

प्रति कंप्यूटर/उपयोगकर्ता लाइसेंस लाइसेंस बेचें।

इस तरह आप आवश्यकता होने पर 2 से अधिक उपयोगकर्ताओं को आसानी से स्केल कर सकते हैं।

फ्लोटिंग लाइसेंस लागू करना भी संभव है: प्रत्येक बार कोई उपयोगकर्ता लाइसेंस प्राप्त करने का प्रयास करता है, यह केवल उपलब्ध होने पर ही दिया जाता है। बेशक लाइसेंस को डिस्कनेक्ट या टाइम-आउट के बाद 'मुक्त' होना होगा। इस परिदृश्य में आपको ऐसे सर्वर की आवश्यकता है जिसमें कई लाइसेंस और एक भरोसेमंद सेवा शामिल है जो उन्हें बाहर रखती है।

Winforms आवेदन में आप बस स्टार्टअप पर लाइसेंस के लिए जाँच करेगा और आप समय समाप्ति का विस्तार कर सकता है हर उपयोगकर्ता कुछ महत्वपूर्ण (जैसे डेटाबेस क्वेरी करने या एक मेनू आइटम पर क्लिक के रूप में)

1

मौजूदा उपयोगकर्ताओं को समेकित रूप से लॉग इन करने के लिए "currentUser" तालिका का उपयोग करें।

उपयोगकर्ता लॉगिन करते समय, अधिकतम संख्या यदि पंक्ति गणना की जांच करें। पंक्तियों तक पहुंच गया है।

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