پایان نشست (Session) در صورت عدم استفاده از سیستم در Asp
سلام
چطوری میشه در صورتی که کاربر از سیستم و به تبع آن از سایت استفاده نکرد View مربوط به پایان نشست رو فراخوانی کرد.
باتشکر
همونطوری که fateme هم گفت خیلی کلی و بدون جزییات سوال رو طرح کردید. به طور کلی میشه گفت میتونید از طریق جاوا اسکریپت کنترل کنید اگر کاربر برای چند دقیقه یا چند ساعت هیچ کاری نکرد (مثلا صفحه اسکرول نخورد) یه پیام به سرور بفرسته و Session ها رو ببنده. به طور کلی اینجوری میشه کرد.
اگر کاری کردید یا کدی نوشتید قرار بدید تا بشه بررسی کرد.
ببینید معمولا تا اونجایی که بنده دیدم اگر امنیت برای سیستم مهم باشه وقتی کاربر مرورگر رو میبنده Session رو حذف میکنن. یعنی کاربر هر بار که مرورگر رو باز میکنه باید نام کاربری و رمزعبور رو مجدد بزنه. شما میتونید توسط جی کوئری هم این مورد رو کنترل کنید ولی یه سری مشکلاتی هم داره که در ادامه میگم خدمتتون.
اگر شما از Identity در Asp.net Core استفاده می کنید برای لاگین از دستور زیر استفاده باید کنید :
await _signInManager.PasswordSignInAsync(model.UserName, model.Password, isPersistent : true, lockoutOnFailure: false);
همونطوری که می بینید isPersistant رو true قرار دادیم. اگر false کنیم باعث میشه به محض بسته شدن مرورگر کاربر Session یا همون نشست مربوط به لاگین از بین بره و کاربر دوباره باید نام کاربری و رمز عبور وارد کنه.
اما اگر میخواید خود مرورگر رو کنترل کنید کمی جریان متفاوته چون این موضوع سمت کلاینت میشه. کنترل کردن سمت کلاینت برای امنیت هم به طور عادی و با دستورات جی کوئری زیاد منطقی نیست چون اطلاعات در کلاینت رو کاربر میتونه به راحتی ببینه و تغییر بده و یا حتی غیر فعال کنه. ولی با دستورات زیر میتونید کنترل کنید که مرورگر تغییری داشته یا نه. (بازم میگم برای امنیت استفاده نکنید بهتره)
var isTabActive;
window.onfocus = function () {
isTabActive = true;
};
window.onblur = function () {
isTabActive = false;
};
// test
setInterval(function () {
console.log(window.isTabActive ? 'active' : 'inactive');
}, 1000);
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2