PDA

View Full Version : sessionهای خالی



pershengkurd
سه شنبه 06 مهر 1389, 14:41 عصر
سلام:
مشکل با session
پس از تایید صحت یوزر و پسورد در دکمه login مقادیر نام و نوع کاربر از دیتابیس select میشود و در داخل 2 session ریخته میشود و سپس وارد صفحه اول مدیریت میشود (تا اینجا درست کار میکند)
اما برای صفحات داخلی دیگری از داخل بخش مدیریت session نام و نوع را خالی کرده و اجازه دسترسی نمیدهد.با اینکه تمام صفحات داخلی دارای چنین کدی هستند

label1.text=session["name"].tostring ();
session["name"]=labble1.text;
و همین برای نوع

ولی خطای object not set میدهد و وقتی این کدها را داخل try میگزارم labelها را خالی بر می گرداند
مشکل کارم کجاست؟

alonemm
سه شنبه 06 مهر 1389, 14:54 عصر
دوست من شما اگه درست فهمیده باشم میخاید پس از لاگین کردن اجازه دسترسی به یک صفحه رو بدید؟

اگه اینطریه نام کاربری کاربری که لاگین کرده رو توی یک سشن بزارید و توی صفحه با شرط تست کنید که null نباشه.

موفق باشد.

pershengkurd
سه شنبه 06 مهر 1389, 15:02 عصر
if (session["name"]!= null)
{label1.text=session["name"].tostring ();
session["name"]=labble1.text;{

این جوری که از صفحات میاد بیرون
چون کلا سشن رو خالی میفرسته تو صفحات

alonemm
سه شنبه 06 مهر 1389, 15:08 عصر
خب پس اینجا میرسیم به این که توی قسمتی که شما لاگین رو انجام میدید مشکل دارید و مقدار رو درست توی سشن ذخیره نمیکنید.

اگه پروژه خودتونو بزارید من کدشو ببینم بیشتر میتونم راهنمایی کنم.

pershengkurd
سه شنبه 06 مهر 1389, 15:25 عصر
گفتم که مقدار برگشت داده میشه صفحه اول مقادیر رو نشون میده ولی از صفحات بعدی که به صورت تصادفی هر بار یکی رو میارم دیگه سشن رو نمیخونه
ممنون

Behrouz_Rad
سه شنبه 06 مهر 1389, 17:01 عصر
طوری برنامه بنویس که انگار Session وجود نداره. یا آنتی ویروس یا IIS Worker Process مانع از اجرای عملکرد صحیح Session ها میشن و اونها رو null می کنن.
در این سناریو از کوکی استفاده کن.

موفق باشید.

baran_mehr
یک شنبه 16 آبان 1389, 10:50 صبح
سلام
اگر میخوای چک کنی که وقتی تو یه صفحه وارد میشه سشن مقدار داره یا نه از این کد استفاده کن میتونی تو فرم لود یا preload بنویسی، و در صورتی که صفحه باز بشه یعنی سشن مقدار داره

Try
If Session("name") = "" Then
Response.Redirect("~/login.aspx")
End If
Catch ex As Exception
Response.Redirect("~/login.aspx")
End Try

cjNet
یک شنبه 16 آبان 1389, 11:20 صبح
سلام:
مشکل با session
پس از تایید صحت یوزر و پسورد در دکمه login مقادیر نام و نوع کاربر از دیتابیس select میشود و در داخل 2 session ریخته میشود و سپس وارد صفحه اول مدیریت میشود (تا اینجا درست کار میکند)
اما برای صفحات داخلی دیگری از داخل بخش مدیریت session نام و نوع را خالی کرده و اجازه دسترسی نمیدهد.با اینکه تمام صفحات داخلی دارای چنین کدی هستند

label1.text=session["name"].tostring ();
session["name"]=labble1.text;
و همین برای نوع

ولی خطای object not set میدهد و وقتی این کدها را داخل try میگزارم labelها را خالی بر می گرداند
مشکل کارم کجاست؟



سلام .
چرا وقتی مقدار session رو می ریزی توی label دوباره مقدار label رو میزی توی session ؟؟؟ مگه تو این بین مقدار session از بین میره که شما این کار رو می کنید .
قسمت دوم سوالاتون که گفتید try گذاشتید به نظرم این بین یه postBack یا اتفاق دیگه رخ می ده که اون مقداری که شما در label ریختید از بین میره ( ViewState ، لیبل ها را رو چک کنید true باشند ) .

امیدوارم که مفید باشه ....

blackcats
یک شنبه 16 آبان 1389, 13:20 عصر
نمیدونم کامل منظورت متوجه شدم یا نه اما من هم مشابه این مشکل رو داشتم به حالت که session کم تر از اون زمانی که ست کرده بودم expire میشد.
با تغییر سرور(HOST) مشکلم بر طرف شد.

Vahid_moghaddam
یک شنبه 16 آبان 1389, 20:02 عصر
طوری برنامه بنویس که انگار Session وجود نداره. یا آنتی ویروس یا IIS Worker Process مانع از اجرای عملکرد صحیح Session ها میشن و اونها رو null می کنن.
در این سناریو از کوکی استفاده کن.

موفق باشید.

ایشون (بهروز راد) رو به عنوان یه فرد مسلط قبول دارید یا نه؟ اگه ندارید، به تاپیک هایی که ایجاد کردن نگاه کنید. اگه باز هم راضی نشدید، یه نگاه گذرا به مبحث session state بندازید. از form authentication استفاده کنید. مطمئن باشید روش درست اینه. روشی که از کوکی استفاده می کنه. session ها قابل اعتماد نیستند!

blackcats
یک شنبه 16 آبان 1389, 21:04 عصر
من توی یکی از پروژه هام از کوکی استفاده کردم اما مشکلی که بود احتمال داره سمت کلاینت کوکی غیر فعال باشه و نتونه ذخیره کنه.

Behrouz_Rad
یک شنبه 16 آبان 1389, 23:16 عصر
من توی یکی از پروژه هام از کوکی استفاده کردم اما مشکلی که بود احتمال داره سمت کلاینت کوکی غیر فعال باشه و نتونه ذخیره کنه.
اگر کوکی غیر فعال باشه از Session هم نمی تونه استفاده کنه چون SID در کوکی قرار می گیره. مگر اینکه SID رو از طریق URL رد و بدل کنی که در این حالت شکل URL بسیار زشت میشه. در ضمن، دلیلی نداره کاربر کوکی رو غیر فعال کنه. اگر این کار رو کرده بود، بهش هشدار میدی که برای اینکه از تمامی امکانات سایت بتونی به شکل صحیح استفاده کنی، باید کوکی ها فعال باشند. همین حالت می تونه برای جاوا اسکریپت هم پیش بیاد. آماری که من دیده بودم، 95 درصد سیستم ها، جاوا اسکریپتشون فعال هست. اون 5 درصد هم احتمالاً Crawler ها بودن.

موفق باشید.