PDA

View Full Version : Login حرفه ای



irantkd
شنبه 06 مهر 1387, 15:34 عصر
سلام دوستان

من یه پروژه طراحی کردم که کاربران برای مشاهده بعضی چیزها ، نیاز به Login کردن دارند . یعنی حتماً باید Authenticat شده باشن تا بتونن از آن قسمتها استفاده کنن .
موقع Login نام کاربری در Session نگه داری میشه و با همون Username به صورت QuaryString به صفحه CPanel.aspx ( صفحه کاربری ) انتقال داده میشن .
مثلاً اگر نام کاربری Admin1 باشه = 1http://LocalHost/MyWeb/CPanel.aspx?ID=Admin
هنگام Load شدن CPanel.aspx هم مشخصاتی از قبیل نام ، ایمیل و تاریخ عضویت نمایش داده میشه .
» تا اینجا مشکلی نیست !
حالا اگه کاربری به جای Username بالا ( Admin1 ) ، Username یه کاربر دیگه رو بنویسه و اینتر کنه به محیط کاربری اون کاربر منتقل میشه و میتونه به راحتی خراب کاری کنه .

» سؤال من از شما اینه که چجوری میشه جلوی این کار رو گرفت ؟

merlin_vista
شنبه 06 مهر 1387, 16:10 عصر
اين سناريو شما به كلي مشكل داره .
چرا نام كاربري را با QuaryString ارسال ميكني ؛ مگه توي Session ذخيره نميكي . از همون هم بخون . ديگه كسي به username كس ديگر دسترسي نداره .

پيشنهاد : از سيستم تصديق هويت دات نت استفاده كن . . .

milade
یک شنبه 07 مهر 1387, 04:46 صبح
یه مثال سشنی:
برای ارسال»

session("user")="نام کاربری"
برای دریافت»

dim user=session("user")
ویژگی:
امنیت داره(در صورت برنامه نویسی صحیح)
ولی عیبی که داره سرعت سرور افت می کنه

موفق باشی

mahdi_farhani
یک شنبه 07 مهر 1387, 07:15 صبح
Session هم برای لاگین زیاد جالب نیست ( البته اگر توش اطلاعات مهم مثل یوزر و پسوورد رو نگه داری کنی )
بهترین روش تصدیق هویت دات هست .
اگر هم دوست داری که با Querystring پاس بدی ، اونو حتماً اینکریپت کن که دیگه قابل فهم برای یک کاربر نباشه

eyes_shut_number1
یک شنبه 07 مهر 1387, 07:45 صبح
به نظر من روش تصدیق دات نت دیتابیس بزرگی میخواد که فکر کنم 12 MB هست + کلی جداول که شاید سال تا سال کارت بهش نیفته
اگه اطلاعات رو Encrypt کنی و داخل همون Session بریزی خوبه و از اون ورم Decrypt کنی .
البته همیشه امکان زدنش هست ولی خوب اینشوریم بد نیست
ولی اگه حوسله این کارارو نداری بهترین راه همون طور که دوستان فرمودن روش تشخیص هویتت دات نت هست
موفق باشی

Saber_Fatholahi
یک شنبه 07 مهر 1387, 11:27 صبح
اگه می خوای از روش خودت استفاده کنی توی PageLoad این کد بنویس

if(User.Identity.Name==Request.QuryString["UserID"])
{}
else
return;
به نظر من واسه کارت این جواب می ده

mahdi_farhani
یک شنبه 07 مهر 1387, 15:55 عصر
به نظر من روش تصدیق دات نت دیتابیس بزرگی میخواد که فکر کنم 12 MB هست + کلی جداول که شاید سال تا سال کارت بهش نیفته
اگه اطلاعات رو Encrypt کنی و داخل همون Session بریزی خوبه و از اون ورم Decrypt کنی .
البته همیشه امکان زدنش هست ولی خوب اینشوریم بد نیست
ولی اگه حوسله این کارارو نداری بهترین راه همون طور که دوستان فرمودن روش تشخیص هویتت دات نت هست
موفق باشی

دوست عزیز من منظورم Membership نبود منظورم Formsautitaction بود .


Saber_Fatholahi نقل قول: Login حرفه ای

--------------------------------------------------------------------------------
اگه می خوای از روش خودت استفاده کنی توی PageLoad این کد بنویس

کد:
if(User.Identity.Name==Request.QuryString["UserID"])
{}
else
return;به نظر من واسه کارت این جواب می ده
User.identity.Name هم مستلزم استفاده از Formsautitication هست .

sina39229
یک شنبه 07 مهر 1387, 19:50 عصر
سلام
من یه مشکلی با Session دارم و اون این است که وقتی کاربری Login کرد کد کاربری را با session به صفحه مربوطه به کاربر انتقال می دهم و کاربر به راحتی تمامی کارها را انجام میده ولی بعد از مدتی که به صفحات دیگه رجوع می کنه session ام خالی می شه و کابر را از control panel مخصوص بیرون می اندازه و باید دوباره login کنه !!

مشکل چیست ؟

در ضمن از کوکی هم نمی خوام استفاده کنم !!

milade
دوشنبه 08 مهر 1387, 04:34 صبح
دوست عزیز احتمالا زمان تایم اوت (time out) سشن شما فرا رسیده که مقدار پیش فرض 30 دقیقه می باشد.
یعنی چی؟؟؟؟
یعنی اگر کاربر تا 30 دقیقه از سایت استفاده نکنه سشن اون از سرور حذف و کاربر دیگه شناسایی نمی شه .
برای این کار باید مقدار مربوطه را در web.config افزایش یا کاهش دهید(توصیه همون 30 دقیقه هست)
برای این کار هم توی سایت بسرچ.
موفق و پیروز باشی