PDA

View Full Version : سوال: وجود یا عدم یک session



crazy_1892
یک شنبه 13 آذر 1390, 22:41 عصر
سلام دوستان من کد زیر را نوشتم ولی به صورت صحیح عمل نمیکنه
کارش اینه که وقتی کاربر login میکنه یک سری اطلاعات در session ذخیره میکنه
مشکلشم اینه که در هر زمانی testlogin=0 است.


if (IsPostBack)
{
if (Session["Users"] != "Null")
testLogin = 0;
else
testLogin = 1;
}




یه مشکله دیگه اینه که زمانی که کاربر این session را با login کردن به سایت تشکیل میده اگه اشتباهی صفحه را ببندد و دوباره باز کند(با فاصله زمانی که session ار بین نرود ) این شرط بخاطر اینکه ispostback هست چک نمی شود .به نظر شما چی جوری این قسمت را پیاده شازی کنم که مشکلی نداشته باشه؟؟



دوست عزیز بخش login را درون masterpage نوشتم و در لود masterpage وجود یا عدم وجود session چک می شود

سلام دوستان خسته نباشید با چه شرطی میتونم بفهمم که یک session وجود دارد یا ازبین رفته یا پاک شده؟؟؟

Sirwan Afifi
یک شنبه 13 آذر 1390, 22:54 عصر
سلام دوست عزیز
اگه میخوای Session مربوط به User رو چک کنی دیگه نیازی به شرط IsPostBack نیست به اینصورت میتونی ازش استاده کنی یعنی اگر Session وجود نداشت برگرد به صفحه لاگین:
if (Session["Admin"] == null)
{
Response.Redirect("Default.aspx");
return;
}

if(Session["Name"]!=null){//یعنی سشن وجود دارد}

raziee
دوشنبه 14 آذر 1390, 00:47 صبح
1
if(Session["Name"]!=null){//یعنی سشن وجود دارد}
البته بهتره ابتدا مقدار رو دریافت کنیم ، تا در صورت از بین رفتن در لحظه(که البته ممکنه هیچ وقت اتفاق نیفته) مقدار رو داشته باشیدم.

object mySession = Session["Name"];
if(mySession!=null)
{
// do someting...
}

crazy_1892
دوشنبه 14 آذر 1390, 09:42 صبح
کار این session این است که وقتی که کاربر login نام کاربری و پسورد به صورت hash شده درونش قرار می گیرد و درون هر صفحه چک می شود(در رویداد لود masterpage نوشتم کدشو)

حالا این session جند تا وضعیت داره
1-اولین با که صفحه لود میشه
2-وقتی کاربر login میکند
3-وقتی کاربر صفحه ها رو میبنده و session هنوز نابود نشده و قبل از زمان نابودی دوباره صفحه را باز می کنه ؟؟

جالا این جند قسمت مختلف است که من هر جور پیاده سازیش می کنم به مشکل بر می خورم؟
به نظر شما چه کاری انجام بدم که مشکل نخورم؟؟؟

raziee
دوشنبه 14 آذر 1390, 10:52 صبح
کار این session این است که وقتی که کاربر login نام کاربری و پسورد به صورت hash شده درونش قرار می گیرد و درون هر صفحه چک می شود(در رویداد لود masterpage نوشتم کدشو)

حالا این session جند تا وضعیت داره
1-اولین با که صفحه لود میشه
2-وقتی کاربر login میکند
3-وقتی کاربر صفحه ها رو میبنده و session هنوز نابود نشده و قبل از زمان نابودی دوباره صفحه را باز می کنه ؟؟

جالا این جند قسمت مختلف است که من هر جور پیاده سازیش می کنم به مشکل بر می خورم؟
به نظر شما چه کاری انجام بدم که مشکل نخورم؟؟؟
با سلام.
من نمیدونم شما چرا دارید از Session به این شکل استفاده میکنید.
اگر درست متوجه شده باشم شما قصد دارید که دسترسی به چند صفحه خاص رو به چند کاربر خاص محدود کنید درسته؟
اگه این کاربر انواع مختلفی داشته باشند با سطح دسترسی های مختلف به چه شکل میخواهید پیاده کنید؟
مثلا User1 بتونه صفحه ی Product رو ببینه، محصول اضافه کنه اما نتونه محصولی رو حذف کنه ولی User2 بتونه تمام کارها رو انجام بده.
چرا از نقش های کاربری (Role) برای این کار استفاده نمیکنید؟
به هر حال این بحث ارتباطی با این تاپیک نداره اگه خواستید در تاپیک جدید ادامه بدید.

fakhravari
دوشنبه 14 آذر 1390, 11:59 صبح
با سلام به اقای raziee (http://barnamenevis.org/member.php?95909-raziee) گل.
شاید از ممبرشیپ استفاده نمیکند.

crazy_1892
دوشنبه 14 آذر 1390, 13:26 عصر
درسته من از login خود .net استفاده نمیکنم ؟؟و حودم درام یک login طراحی میکنم

fakhravari
دوشنبه 14 آذر 1390, 14:05 عصر
خوب با دستورات بالا می تونید استفاده کنید.
Session.RemoveAll();
Session.Remove("");

crazy_1892
دوشنبه 14 آذر 1390, 16:23 عصر
با پاک کدن session مشکلی ندارم

با اجرای شرایط که در بالا گفتم مشکل دارم؟؟؟

fakhravari
دوشنبه 14 آذر 1390, 17:17 عصر
مگه با دستورات بالا مشکل برطرف نمیشه :متفکر:

Saman Hashemi
چهارشنبه 16 آذر 1390, 07:06 صبح
شاید از ممبرشیپ استفاده نمیکند.
دلیلی نداره حتما از ممبرشیب استفاده کنند تا بتونند سیستم را مبتنی بر نقش افراد کنند باید دوتا جدول درست کنند یکی انواع نقش ها و دومی اینکه چه کاربری چه نقشی داره...!