PDA

View Full Version : سوال: چگونه میتوان از ورود مجدد یک کاربر به سیستم جلوگیری کرد؟



irandg
سه شنبه 12 خرداد 1388, 18:31 عصر
با سلام.

در زمانی که یک سیستم ورود و خروج و عضویت در سایت داریم، من اینگونه عمل میکنم که نتیجه فرم ورود را با مقادیر بانک اطلاعاتی مقایسه میکنم و چنانچه فرد نام کاربری و کلمه عبور معتبری را وارد کرده بود، مقدار متغییر Session("username") را برابر با نام کاربری طرف قرار میدهم. و در بالای صفحات بعدی ابتدا مقدار این متغیر را چک میکنم. اگر خالی بود، کاربر را به صفحه ورود برمیگردانم و اگر خیر صفحه را برای وی نشان میدهم.
اولاً میخواستم ببینم اصولاً روش کارم درست است یا راه بهتری هم وجود دارد؟
و ثانیاً مشکلی که با این روش وجود خواهد داشت این است که به این صورت اگر کسی مجدداً با همین نام کاربری و کلمه عبور از یک کامپیوتر دیگر تقاضای لاگین کند، امکان لاگین برای وی نیز وجود خواهد داشت. چطور میتوان از ورود مجدد همان فرد تا زمانی که Session وی فعال است، جلوگیری کرد؟
(راهی که هم اکنون به ذهن خودم میرسد این است که در فایل Global.asa برای رویدادهای SessionStart و SessionEnd بنویسم که به محض ورود فرد به سیستم یک متغییر در Application با نام کاربری فرد تعریف و مقدار آنرا True بگذارد، و زمانیکه SessionEnd میشود هم این متغییر را پاک کند. و در صفحه ورود، ابتدا چک کنم که اگر Application متغیری با همین نام و مقدار True وجود داشت، به کابر اجازه ورود ندهد.) لطفاً راهنمایی بفرمایید. آیا این روش خوبی است؟

kashaneh
سه شنبه 12 خرداد 1388, 19:01 عصر
دوست عزیز در این مورد قبلا بحث شده است به تاپیک زیر مراجعه کنید :

http://barnamenevis.org/forum/showthread.php?t=156743

ضمن اینکه راه حل شما به دلیل اینکه ممکن است حجم حافظه زیادی را از سرور بگیرد، زیاد راه حل مناسبی به نظر نمی رسد... مگر اینکه مدیریت دقیق، روی ورود و خروج کاربران و آزادسازی حافظه سرور داشته باشید... موفق باشی