سلام دنبال یه روش بهینه و پر سرعت هستم که بجای اینکه یه آیدی ثابت از کاربر داخل سشن ذخیره کنم یه عدد رندوم ذخیره کنم و هربار که کاربر لاگین میکنه این عدد به روز بشه و هربار خروج میکنه پاک کنه و به هیچ شکلی نتونه بعد خروج با سشن قبلی لاگین کنه ( یا اصطلاحا هک کنه )
سلام
ما که آخر نفهمیدیم منظور شما از session چی هستش!
اگه میخوای توی اطلاعات token دستکاری کنی که غیر ممکنه.
اگه هم داخل token یه sessionId نگهداری میکنی که خب خیلی راحت اطلاعات session رو با هر بار درخواست کاربر به روز میکنی.
بهتره داخل دیتابیس یه جدول اضافه کنی و داخلش یه ProcessId باشه و یه bit که نشون بده این عملیات انجام شده یا نه. بعد هر بار که token میسازی یه Process با bit false ایجاد میکنی و token رو میدی به کاربر. کاربر که درخواست داد با ProcessId یه Find میزنی روی اون جدول و مقدار bit رو میخونی که اگه true باشه کاربر اجازه عملیات رو نداره (یعنی عملیات یکبار صورت گرفته).
حالا برای سریعتر شدنت این منطق میتونی process ها رو داخل رم cache کنی و هر بار به دیتابیس نری. اما حتما باید داخل دیتابیس هم ثبتش کنی تا اگه رم به مشکل خورد یا سرور ریست شد cache رو از داخل دیتابیس پر کنی. هر یه مدت یه بار هم کلا invalid کن cache رو. (این یه مدت یه بار برابر میشه با زمان انقضای token) مثلا اگه خیلی عملیات حساس باشه باید انقضای token رو ۶۰ ثانیه در نظر بگیری.
موفق باشی.
شما لطف کردی تو پست قبلی جواب دادی پست جدید گذاشتم با عنوان جدید که به راه حل برسم
یکبارم گفتم من وب فرمه برنامم و خیلی ئاضح هست توکن ندارم و اون توکن برای mvc هستش این رو به وضوح درجریانم و میدونم
الان مشکلم اینه کاربر به طور مثال یه تراکنش رو تو کافی نت انجام بده و یه نرم افزار باشه که بیاد و سشن رو ذخیره کنه میتونه دوباره لاگین کنه و جای اون کاربر به کار ادامع بده
میخوام جلوی این موضوع رو بگیرم
روشی هم که اجرا کردم یه حدول گذاشتم یه آیدی رندوم به نام اون کاربر صادر میکنه و اون رو چک میکنه و کاربر logout کنه پاکش میکنه و تمام الان دنبال راه بهینم تا پرفرمنس بالا بره
از Forms Authentication استفاده کردی این مشکل رو داری ؟
کلا تاحالا از کلاس های آماده asp استفاده نکردم برای این کار و ترجیح هم میدم اینکارو نکنم
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)