آموزش ASP.NET

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

آموزش ASP.NET

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

مشخص نمودن زمان انقضاء برچسب

برچسب احراز هویت فرم‏ها یک نشانه است که هرگونه خصوصیتی را نمایش می‏دهد. با برچسب احراز هویت بر پایه کوکی، این نشانه در یک قالب از یک کوکی نگهداری می‏شود و در هر درخواست به وب سرور ارسال می‏شود. در اختیار داشتن این نشانه، اعلان می کند که: "من کاربر هستم، در حال حاضر وارد سیستم شده ام." و برای اینکه هویت کاربر در تمام صفحاتی که بازدید می‏کند، قابل تشخیص باشد، استفاده می‏شود. برچسب احراز هویت فرمها فقط شامل مشخصات کاربر نیست، بلکه حاوی اطلاعاتی برای کمک به ایمنی و بی‏نقصی نشانه می‏باشد.

یکی از اطلاعات در برچسب زمان انقضاء می‏باشد، که تاریخ و زمانی که برچسب دیگر معتبر نیست را مشخص می‏کند. هر زمان که FormsAuthenticationMadule یک برچسب احراز هویت را بررسی می‏کند، مراقبت می‏کند که زمان انقضاء برچسب هنوز نگذشته باشد. اگر گذشته باشد، برچسب را نادیده می‏گیرد و با کاربر به عنوان یک فرد ناشناس برخورد می‏کند. این روش به حفاظت کردن در مقابل حملات کمک می‌کند. بدون زمان انقضاء، اگر یک هکر بتواند به برچسب احراز هویت معتبر کاربر دست پیدا کند، مثلا از طریق دسترسی فیزیکی به کامپیوتر و از آن طریق به پوشه کوکی‌ها، می‌تواند با استفاده از این برچسب احراز هویت دزدیده شده یک درخواست به سرور ارسال کرده و داخل سایت شود. وقتی که برچسب احراز هویت ایجاد می‌شود، سیستم احراز هویت فرم‌ها با نگاهی به تنظیمات timeout درباره زمان انقضاء آن تصمیم می‌گیرد. همانطور که در جدول بالا ذکر شده، مقدار پیش فرض تنظیم timeout 30 دقیقه است، و به این معنی است که وقتی برچسب احراز هویت فرم‌ها ایجاد شد، زمان زمان انقضاء آن برای 30 دقیقه بعد تنظیم می‌شود.

زمان انقضاء، یک زمان قطعی در آینده را برای منقضی شدن برچسب احراز هویت مشخص می‌کند. اما معمولا توسعه‌دهندگان می‌خواهند از زمان انقضاء تبدیلی استفاده کنند، یعنی اینکه در هربار که کاربر سایت را می‌بیند، برچسب از ابتدا زمان‌دهی شود. این خواسته با تنظیمات slidingExpiration قابل انجام است. اگر برابر true قرار داده شود، هر زمان که FormsAuthenticationModule یک کاربر را شناسایی می‌کند، زمان انقضاء برچسب را به روز می‌کند. اگر برابر false (پیش فرض) قرار داده شود، زمان انقضاء در هر درخواست به روز نمی‌شود، در نتیجه برچسب دقیقا بعد از اتمام timeout که از هنگام ایجاد شدن شروع شده است، منقضی می‌شود.  

 

در شکل زیر : زمان انقضاء برچسب احراز هویت وقتی slidingExpiration برابر false است.

  

  

 

در شکل زیر: زمان انقضاء برچسب احراز هویت وقتی slidingExpiration برابر true است.

 

 

 

 

وقتی از برچسب احراز هویت بر پایه کوکی (پیش فرض) استفاده می‌کنید، این بحث مقداری گیج کننده می‌شود، زیرا خود کوکی نیز می‌تواند زمان انقضاء داشته باشد. زمان انقضاء کوکی به مرورگر می‌فهماند که چه زمانی باید آن را نابود کند. اگر یک کوکی ناقص بود (زمان انقضاء آن مشخص نبود) وقتی مرورگر بسته می‌شود نابود می‌گردد. اگر زمان انقضاء کوکی مشخص شده باشد در کامپیوتر کاربر نگهداری می‌شود تا زمان مشخص شده سپری گردد، سپس نابود می‌شود. وقتی کوکی توسط مرورگر نابود شود، دیگر به سرور فرستاده نمی‌شود، بنابراین، نابود شدن کوکی مانند خارج شدن کاربر از سایت است.

اجازه دهید زمان انقضاء برچسب در سایت خودمان را با استفاده از زمان انقضاء تبدیلی، به یک ساعت تغییر دهیم. برای این منظور باید تغییراتی در فایل Web.config بدهیم.

<authentication mode="Forms">

<forms

slidingExpiration="true"

timeout="60"

/>

</authentication>

نظرات 1 + ارسال نظر
سعید شنبه 15 شهریور‌ماه سال 1393 ساعت 12:14 ب.ظ

نکته بسیار مهمی بود
تشکر

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