رفع مشکل خروج کاربر لاگین کرده زودتر از زمان تعیین شده در webconfig

,وقتی که شما توی webconfig زمان لاگین بودن و session رو افزایش میدین، ممکنه بخاطر تنظیمات سرور زودتر از زمان تعیین شده session شما منقضی بشه و دیگه لاگین نباشید. توی این مقاله کوتاه ولی کاربردی به زبان ساده به حل و رفع این مشکل می پردازم

سلام دوستان. توی مقاله کوتاه امروز می خوام به حل یکی از مشکلات خودم در پروژه های mvc بپردازم. اون مشکلم چیزی نیست جز خروج کاربری که لاگین کرده بعد از مدت زمان 20 دقیقه.

خوب مشکل از اونجا شروع شد که من کل پروژه خودمو آماده کردم و به درستی هم کار می کرد. اما بعد از انتشار پروژه در وب یک مشکل بزرگ پیدا شد و همونطور که گفتم ، اون خروج کاربر بعد از مدت 20 دقیقه بود. خیلی دنبال حل این مشکل گشتم و اغلب پاسخهایی که توی سرچم پیدا کردم این بود: مشکل از هاستت هست و اونا بخاطر کنترل منابع این موضوع رو محدود کردن. اما جریان چی بود؟

جریان از این قراره که توی لوکال هاست، شما همیشه یک machin key دارید و همیشه هم ثابته. اما توی سرور هر چند مدت یک بار(بر اساس تنظیمات) این machin key عوض میشه.

نمونه ای از machin key:

<machineKey validationKey="49EBD6FC62D035E42146F958128C90F0EA505680EDFBD0BB164B4E9646D034A653E68459681C065CA40D98A21D0F75E44F6225308B23A6E4352A272369638686" decryptionKey="4E9370442D015C95C29286939D6455381757AF39C37C07BBF1BF350DB72FF9CC" validation="SHA1" decryption="AES" /> 

همونطور که می بینید از دو کلید validation  و decryption تشکیل شده، که از مورد دوم برای رمزنگاری و رمز گشایی داده های فرم ، ویو استیت ها و همین بحث خودمون یعنی یوزرها و رولها استفاده میشه. حالا زمانی که شما لاگین می کنید اطلاعات شما با یک machin key خاص رمزنگاری میشه و در کوکی می نشیند. بعد از 20 دقیقه سرور machinkey پروژه شما رو عوض می کنه. این یعنی، دیگه اون اطلاعات لاگین رمزنگاری شما فایده ای نداره چون کلید رمزنگاری تغییر کرده. حالا راه حل چیه؟

برای حل این مورد باید یک machin key تولید کنید و در وب کانفیگ قرار بدین. می پرسین چطور؟

ابتدا وارد اینجا بشید و از تب machinkey ورژن asp خودتون رو انتخاب کنید. بعد بهتون یه کد میده که باید کل اون رو توی تگ system.web در webconfig قرار بدین و تمام.

امیدوارم از این مطلب کوتاه استفاده کنید

آموزش asp.net mvc