PDA

View Full Version : authentication & autorization



atf
سه شنبه 15 دی 1383, 11:23 صبح
ba arze salam :)
man kar bar jadide in sit hastam va mikham bara avalin bar ye soale takhasosi bokonam kheili khoshhal misham ke in ye soal baes beshe ta man joze karbaran hamishegie in site movafagh besham

::نوشتن:: va ama soal
man mikham barnamey web base benevisam ke vaghti ye user ba passworde khodesh miad dakhele system ta vaghti ke on onlin hast kase digeii natone ba on password online beshe va az narm afzare web base man estefade kone
man database user ham mojode va barnamam ham tanha moshkeli ke dare ine ke ba ye password harchanta user ke bekhan mitonan baham az narm afzaram esefade konan ke man ino nemikham

ya hadeaghal be man komak konid ta betonam mac address client hae ke be narm afzare man dastresi peyda mikonan ro begiram

*************** THANK YOU *******************

Vahid_Nasiri
سه شنبه 15 دی 1383, 12:10 عصر
دفعه ی بعد فارسی ننویسی پستت حذف خواهد شد.

می تونی IP افراد را به سادگی بدست بیاری و همزمان اجازه ی لاگین با IP‌ های مختلف رو ندی. در مورد IP و روش بدست آوردن آن در بخش تاپیک هست.

atf
چهارشنبه 16 دی 1383, 07:17 صبح
با عرض سلام مجدد
ممنونم از راهنمایی شما.
اما متاسفانه مشکل هنوز وجود داره :
اول اینکه اگر بخواهیم ip را از طریق متغیر های iis بگیرم ، اگر کاربران از پراکسی بگذرند ، این متغیر ها ip ماشین پراکسی رو بر میگردونند که این ip ،ip واقعی ماشین کلاینت نیست( من این برنامه رو در یک شبکه lan دارای پروکسی سرور اجرا می کنم )البته شاید روش دیگری هم وجود داره که من بی اطلاع هستم.
در ضمن من نتونستم مطلبی رو که در مورد به دست آوردن ip گفته بودین رو توی سایت پیدا کنم ، لطفا بیشتر راهنمایی بفر مایید.

یه سوال دیگه هم دارم که اگر این حل بشه باز مشکلی وجود نداره و اون اینکه چه طور میشه با استفاده از session id متوجه شد که این session id هنوز expier نشده است
ممنون از توجه شما

Vahid_Nasiri
چهارشنبه 16 دی 1383, 07:53 صبح
در مورد IP ، راه دیگری برای تشخیص یوزر به این صورت که می خواهید وجود ندارد. (+ بالای صفحه قسمت جستجو در سایت هست).
برای نمونه فوروم IPB از این روش استفاده می کند. (موارد دیگری هم توسط هدرهای http فرستاده نمی شود که بدرد بخور باشد)
+ در lan دارای پروکسی سرور دقیقا IP کامپیوتر در شبکه بازگشت داده می شود و افراد کاملا قابل تمیز هستند. این مورد رو شخصا تست کردم. (البته سرور هم در شبکه داخلی است)

session id برای این کار اصلا مناسب نیست . بهتر است مقاله زیر را ملاحظه کنید:
http://www.eggheadcafe.com/articles/20021016.asp

atf
چهارشنبه 16 دی 1383, 15:24 عصر
بازم سلام
اولا تشکر می کنم از شما
ثانیا من هنوز مشکلم حل نشده من از همان
SERVERVARIABLES استفاده میکنم اما فقط IP پروکسی رو می بینم
همه کلاینت ها در مرورگر خودشون پروکسی رو ست می کنند :گیج:

Vahid_Nasiri
چهارشنبه 16 دی 1383, 18:54 عصر
بله. در تمام کامپیوترها اجبارا ست شده (البته تیک مربوط به استفاده نکردن از پروکسی برای آدرس های کامپیوتر لوکال زده شده. البته برای کار با ASP.NET بر روی کامپیوتر ‌اجباری است و گرنه کار نمی کند).
==========

خوب! راه حل دیگری هم هست!
شما می تونی از رخدادهای global.asax برای منظور خودتون استفاده کنید.
کاربر که لاگین کرد یک فیلد is_online در یک جدول دلخواه برای اینکار تعریف کنید و بیت آنرا یک نمایید.
به محض تمام شدن سشن ، رخداد (Session_End) فراخوانی می شود (در فایل global.asax). حالا اینجا می شود بیت مربوطه رو صفر کرد.
اگر بیت یک بود ، شخص دیگری اجازه ی لاگین کردن با همان مشخصات را ندارد.

تذکر!
بسته شدن مرورگر سبب رخداد session_end نمی شود. چون سرور را مطلع نمی سازد. این رخداد در session timeout فراخوانی می شود. همچنین اگر یک قسمت log out در سایت قرار دهید و در آن Session.Abandon را فراخوانی کنید این رخداد ، رخ می دهد!

atf
شنبه 19 دی 1383, 07:35 صبح
با عرض سلام مجدد .
ممنون از کمکهای شما
جناب مهندس من این را ه رو هم تقریبا امتحان کردم با این تفاوت به جای یک فیلد در دیتا بیس ، یک متغیر application ست میکردم . اما به هر حال این مشکل که کاربر حتما باید روی کلید logout در برنامه کلیک کنه تا .... هنوز وجود داره وه به گفته خودتون اگر به هر دلیلی پنجره مرورگرش رو ببنده رخداد session timeout فرا خوانی نمی شه

پس چه باید کرد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :گیج: :(