آموزش ASP.NET

آموزش ASP.NET متفاوت از آنچه جاهای دیگر می بینید!

آموزش ASP.NET

آموزش ASP.NET متفاوت از آنچه جاهای دیگر می بینید!

چگونه بستر عضویت تلاشهای ورود نامعتبر را اداره می کند؟

وقتی که یک کاربر وارد صفحه ورود می شود و اعتبارنامه خود را وارد می کند، مرورگر یک درخواست HTTP برای صفحه ورود ایجاد می کند. اگر اعتبارنامه معتبر باشد، HTTP در پاسخ یک بلیط اعتبارسنجی داخل یک کوکی ارسال می کند. بنابراین، یک هکر که تلاش می کند وارد سایت شما شود، می تواند یک برنامه ایجاد کند که یک درخواست HTTP همراه با یک نام کاربری معتبر به صفحه ورود ارسال کرده و گذرواژه را حدس بزند. اگر گذرواژه حدسی صحیح باشد، صفحه ورود یک کوکی بلیط اعتبارسنجی برمی گرداند.

برای جلوگیری از این حملات (که در آن یک نام کاربری با تعداد زیادی گذرواژه تست می شوند) بستر عضویت کاربری که تعداد مشخصی ورود ناموفق داشته باشد را قفل می کند. بدین منظور دو پارامتر زیر در تنظیمات پیکربندی بستر عضویت وجود دارند:

·         maxInvalidPasswordAttempts: تعداد مرتبه وارد کردن گذرواژه نامعتبر برای یک کاربر را مشخص می کند. اگر از این تعداد بیشتر شود، کاربر قفل می گردد. مقدار پیش فرض این پارامتر 5 است.

·         passwordAttemptWinddows: بازه زمانی (دقیقه) را مشخص می کند که در خلال آن  چند بار کاربر می تواند ورود ناموفق داشته باشد. مقدار پیش فرض آن 10 است.

اگر یک کاربر قفل گردد، تا زمانی که مدیر آن را باز نکند، نمی تواند وارد سایت شود. وقتی که یک کاربر قفل گردیده است، متد ValidateUser همیشه مقدار false را برمی گرداند.

متاسفانه، ابزار داخلی برای باز کردن کاربر وجود ندارد. برای باز کردن یک حساب، می توانید مستقیم وارد پایگاه داده شده و فیلد IsLockedOut در جدول aspnet_Membership را تغییر دهید و یا با ایجاد یک رابط کاربری که حساب های قفل شده را نمایش دهد و امکان باز کردن آنها را داشته باشد، این کار انجام دهید. در مباحث آینده یک رابط کاربری برای مدیریت ایجاد می کنیم که بتوان کاربرها و نقش ها را مدیریت کرد.

نظرات 1 + ارسال نظر
مهتاب یکشنبه 30 بهمن‌ماه سال 1390 ساعت 10:07 ب.ظ

سلام.وبلاگتون خیلی از چیزایی که لازم دارمو کنار هم جمع کرده .ولی راستش من یه راهنمایی ازتون میخام.
من دارم رو یه پروژه کار میکنم..تو سیستم احتیاج دارم به یه کاربر به عنوان سوپر وایزر که اطلاعات تمام شهرها رو ببینه و یه کاربر استاندارد که از هر شهری که هست اطلاعات مربوط به شهر خودشو فقط ببینه و ویرایش کنه .
فکر کنم از membership خود .net نمیشه واسه این کار استفاده کرد.(البته مطمین نیستم .چون کامل باهاش آشنایی ندارم.)
سه تا جدول دارم که یکی اطلاعات کاربرا و یکی شهرها را مشخص میکنه و سومی مشخص میکنه که چه کاربری از چه شهری به چه مواردی دسترسی داره .
دو تا مسیله اینجا هست : اول اینکه اطلاعات مربوط به اینکه این کاربر از کجاست باید مثل یک برچسب باهاش باشه.از چی برای این کار استفاده کنم بهتره ؟session یا cookie؟یا چیز دیگه؟
و دوم اینکه استفاده از multi view برای دادن امکان انتخاب شهر ها به سوپروایزر و ندادن این امکان به کاربرای استاندارد راه خوبی هست یا نه ؟
اگه برای این کارها راه بهتری هست اون راه چیه ؟
پیشا پیش ممنون از راهنماییتون .به این کمکتون خیلی خیلی احتیاج دارم .

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد