برچسب احراز هویت فرمها یک نشانه است که هرگونه خصوصیتی را نمایش میدهد. با برچسب احراز هویت بر پایه کوکی، این نشانه در یک قالب از یک کوکی نگهداری میشود و در هر درخواست به وب سرور ارسال میشود. در اختیار داشتن این نشانه، اعلان می کند که: "من کاربر هستم، در حال حاضر وارد سیستم شده ام." و برای اینکه هویت کاربر در تمام صفحاتی که بازدید میکند، قابل تشخیص باشد، استفاده میشود. برچسب احراز هویت فرمها فقط شامل مشخصات کاربر نیست، بلکه حاوی اطلاعاتی برای کمک به ایمنی و بینقصی نشانه میباشد.
یکی از اطلاعات در برچسب زمان انقضاء میباشد، که تاریخ و زمانی که برچسب دیگر معتبر نیست را مشخص میکند. هر زمان که 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>
نکته بسیار مهمی بود
تشکر