PDA

View Full Version : سوال: حذف محدودیت زمانی برای کاربرانی که login کرده اند



homa sadeghi
یک شنبه 28 دی 1393, 17:03 عصر
سلام بطور پیش فرض کاربر که login می کنه تا یه مدتی می تونه تو سیستم باشه بعد خودکار session اش خالی میشه و دوباره باید login کنه من نمی خام این طور باشه و کاربر تا هر وقت خودش خروج از سیستم نزده تو سیستم بمونه
لطفا راهنمایی بفرمایید این محدودیت زمانی چطور حذف کنم؟؟؟

r4hgozar
یک شنبه 28 دی 1393, 20:21 عصر
سلام.
این رو می تونین تغییر بدین مدتش رو.


<authentication mode="Forms">
<forms loginUrl="~/Admin/User/Login" timeout="2880" />
</authentication>

alireza_s_84
یک شنبه 28 دی 1393, 20:59 عصر
سلام بطور پیش فرض کاربر که login می کنه تا یه مدتی می تونه تو سیستم باشه بعد خودکار session اش خالی میشه و دوباره باید login کنه من نمی خام این طور باشه و کاربر تا هر وقت خودش خروج از سیستم نزده تو سیستم بمونه
لطفا راهنمایی بفرمایید این محدودیت زمانی چطور حذف کنم؟؟؟
ابتدا میخوام بدونم چرا شما نیاز به داشتن یک Session بدون تاریخ انقضا دارید؟؟؟
دوم یک راه افزایش زمان انقضای Session هست که اصلا توصیه نمیشه. چون ممکنه کاربر مرورگر رو ببنده و در نهایت با اینکه خارج شده ولی چون شما Session رو منقضی نکردین هم سرور رو مستعد حمله کردین و هم بیخود حافظه سرور رو مشغول کردین.
راه دوم که بهتر هست شما با استفاده از جاوا اسکریپت هر چند دقیقه به سرور پینگ کنید. در اینصورت بدون دستکاری زمان انقضای Session میتونید هم Session رو فعال نگه دارین و هم مشکلات روش اول رو نداره:
یک اکشن برای پاسخگویی به Ping کاربر بسازید:
public JsonResult Ping() {
return Json(true, JsonRequestBehavior.AllowGet);
}
کد کلاینت:
$(function () { setInterval(function () {
$.ajax({
url: "../../home/ping",
cache: false
});
}, 600000);
});
موفق باشید

homa sadeghi
دوشنبه 29 دی 1393, 11:32 صبح
سلام کد سمت کلاینت باید برای تک تک ویوها بنویسم؟
آیا راهی هست از این تکرار جلوگیری کنه؟

alireza_rashvand
دوشنبه 29 دی 1393, 12:32 عصر
سلام
از سیستم های لاگین خود VB (مثل Identity 2.0 (http://barnamenevis.org/showthread.php?471502-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-Identity-2-0) ) استفاده کن, دیگه نیاز به سیشن نداری, و کاربر هر زمان صفحه رو رفرش کنه زمان براش دوباره ری استارت می شه...
این لینک رو هم ببین (http://www.dotnettips.info/post/822/asp-net-mvc-18)

alireza_s_84
دوشنبه 29 دی 1393, 13:25 عصر
سلام کد سمت کلاینت باید برای تک تک ویوها بنویسم؟
آیا راهی هست از این تکرار جلوگیری کنه؟
نه اصلا نیازی نیست. شما توی Layout اصلی این کد رو بنویسید کافیه. ضمنا کد من از جی کوئری استفاده کرده ، اگه شما از جی کوئری استفاده نمیکنی باید با استفاده از جاوا اسکریپت و ایجکس یک درخواست ساده به اکشن Ping بفرستین.