محدودیت برای کاربران(Session)

شروع موضوع توسط rah ‏20 سپتامبر 2006 در انجمن برنامه‌نویسی با ASP.NET

  1. rah

    rah Member

    ارسال‌ها:
    288
    تشکر شده:
    106
    امتیاز دستاورد:
    16
    سلام

    می خواستم بدونم در ASP 3.0 چطور میشه با استفاده از Session ها برای کاربران محدودیت ایجاد کرد.
    من یک صفحه لاگین دارم که مدیر میتونه از اون رد شه.
    من تونستم برای اولین صفحه ای که بعد از صفحه لاگین میاد، Session درست کنم. یعنی اگر یوز نیم و پسوورد وارد نکرده بود و یه دفعه صفحه رو فراخوانی کرده بود، به صفحه لاگین برگرده. ولی این تنها 1 صفحه از بخش مدیریت است که Sessionدارد. و دیگر صفحه های مدیر همچین چیزی ندارند! یعنی کاربر با وارد کردن صفحه ی Editbank.asp که مخصوص مدیر است میتونه به اون دسترسی پیدا کنه. می خواستم صفحاتی را مشخص کنم که کاربر حتما باید با Session وارد آن شود.
    ممنونم
    فوری فوری فوری فوری
     
    نوشته شده توسط rah در ‏20 سپتامبر 2006
  2. rah

    rah Member

    ارسال‌ها:
    288
    تشکر شده:
    106
    امتیاز دستاورد:
    16
    یعنی هیچ کس نمی دونه !؟؟
     
    نوشته شده توسط rah در ‏20 سپتامبر 2006
  3. mosyhey

    mosyhey Member

    ارسال‌ها:
    313
    تشکر شده:
    116
    امتیاز دستاورد:
    16
    با سلام
    این کد کنترل صحت سکشن را بالای هر صفحه ای که می خواهید محدودیت ایجاد کنید باید بگذارید.
     
    نوشته شده توسط mosyhey در ‏20 سپتامبر 2006
  4. amirlol

    amirlol Well-Known Member

    ارسال‌ها:
    1,859
    تشکر شده:
    298
    امتیاز دستاورد:
    83
    بايد براي ادمين بزاري كه اگه ادمين بود يه session به نام admin بسازه و مقدارش رو true كنه
    بعد چك مي كني اگه admin = true بود كاري كه مخواي رو بكنه
     
    نوشته شده توسط amirlol در ‏21 سپتامبر 2006
  5. rah

    rah Member

    ارسال‌ها:
    288
    تشکر شده:
    106
    امتیاز دستاورد:
    16
    :eek: دوست عزیز، Amirlo
    اگه بیشتری توضیح بدی، ممنونت می شم.
     
    نوشته شده توسط rah در ‏21 سپتامبر 2006
  6. mehradmoein

    mehradmoein Member

    ارسال‌ها:
    431
    تشکر شده:
    20
    امتیاز دستاورد:
    16
    دوست عزیز شما باید در تمام صفحاتی که برای admin هست,مقدار session رو چک کنید که اگر login نکرده بود,محتوای صفحه رو نمایش ندید.
     
    نوشته شده توسط mehradmoein در ‏21 سپتامبر 2006
  7. mehdi_25

    mehdi_25 Member

    ارسال‌ها:
    127
    تشکر شده:
    17
    امتیاز دستاورد:
    16
    من یه پیشنهاد می کنم که اقلب خودم از این روش استفاده می کنم .

    ببین اینطوری عمل کن :
    بعد از چک کردن Username و Password اگر درست بود یه Sesstion ایجاد کن مثلاً به نام Session_username .
    حالا مقدار فیلد Username رو داخل اون بریز .
    اول هرصفحه هم که می خوای محدود بشه همینطور که بچه ها گفتن باید چک کنی که داخل Sesstion_username چیزی هست یا نه . اگه بود که اجازه ورود به صفحه رو بده و اگه نبود ...
    حالا داخل تمام صفحاتت هم میتونی اسم کاربر رو هم بالای صفحه نمایش بدی .
    اگر پیشرفته تر بخوای عمل کنی میتونی از روی اسمش گروه کاری رو هم برداری و صفحاتی که مربوط به گروه کاریه اون کاربره رو بهش اجازه باز کردن بدی و الی آخر .
     
    نوشته شده توسط mehdi_25 در ‏21 سپتامبر 2006
  8. rah

    rah Member

    ارسال‌ها:
    288
    تشکر شده:
    106
    امتیاز دستاورد:
    16
    سلام
    دوست عزیز، شما رو قبلاً جایی ندیده بودم !!! خوب بی خیال.
    از راهنماییت ممنونم ولی من همچین کاری را کردم اما و قتی در بالای همه صفحاتم عبارت
    کد (Text):
    If Session("s_username") Then
    ....
    را وارد می کنم، قبول نمی کنه! چون گویا این کد فقط برای اولین صفحه بعد از login کردن است!
    اشکالی نداره دوباره امتحان می کنم. اگه کار کرد که اینجا پست رو Edit می کنم. اگر نه، پست رو بدون تغییر می زارم تا یکی جوابمو بده !!!:neutral:
     
    نوشته شده توسط rah در ‏21 سپتامبر 2006
  9. mehdi_25

    mehdi_25 Member

    ارسال‌ها:
    127
    تشکر شده:
    17
    امتیاز دستاورد:
    16
    این کار رو بکن
    کد (Text):
    If Sesstion("s_username") <> "" Then
    این حتماً جواب میده در صورتی که داخل Sesstion چیزی باشه .
    اگه جواب نگرفتی چک کن که اصلاً داخل sesstion چیزی ریختی یا نه .

    راستی من تو پرشین تولز هم ای دیم همینه و داخل برنامه نویس ای دیم لوک خوش شانس هست :D
     
    نوشته شده توسط mehdi_25 در ‏22 سپتامبر 2006
  10. webman

    webman New Member

    ارسال‌ها:
    12
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    If len(Sesstion("s_username")) <>0 Then
     
    آخرین ویرایش: ‏22 سپتامبر 2006
    نوشته شده توسط webman در ‏22 سپتامبر 2006
  11. esf-kh

    esf-kh Member

    ارسال‌ها:
    107
    تشکر شده:
    17
    امتیاز دستاورد:
    16
    شما باید برای آبجکت session یک نام مقدار تعریف کنید . مثلا در صفحه لاگین شما یوزر نیم و پسورد را وارد می‌کنید . ابتدا کد مربوطه در دیتابیس می گردد وقتی ورود شما تایید شد دو کار انجام می‌شود . ابتدا مثلا یک ابجکت session تعریف می شود . نام آنرا مثلا admin قرار می‌دهیم . مقدار آنرا یک مقدار قرار می‌دهیم . در این حالت session ما ایجاد شد . بعد user به سمت صفحه مورد نظر redirect می‌شود . حالا اگر session با اسمی که تعریف کرده‌اید مقدار مورد نظر را داشت شما با استفاده از همان شرطی که دوستان گفتند می توانید وارد صفحه شوید در غیر این صورت به سمت صفحه‌ای که به شما هشدار می‌دهد redirect می‌شوید .
     
    نوشته شده توسط esf-kh در ‏22 سپتامبر 2006
  12. Dim_Amin_As

    Dim_Amin_As New Member

    ارسال‌ها:
    1
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    دوست عزیز سلام برای اینکه شما بتونی روی هر صفحه کنترل داشته باشی و هرکسی رو به همون پیجی که باید ببینه و دسترسی داشته باشه هدایت کنی
    اول باید یه جدول تو اس کیو ال طراحی کنی با نام مجوز و توش یه سری کد بذاری مثلا کد 1 برای ادمین کد 2 برای کاربران خاض و کد 3 برای کاربران عمومی خب حالا
    مجوزت امادست.جدول نام کاربری هاتم درست کن تا اوکی باشی
    واسه راحتی خودت برو یه کلاس تعریف کن مثلا کلاس clslogin خب داخل کلاست یه تابع معرفی کن با نام مجوز
    بعدش و session رو یکی از مقادیر فراخوانیش تعریف کن.حالا دیگه کارت راحته و فقظ باید اول هر صفحه تابع مجوز رو فراخوانی کنی و session رو چک کنی که اگه مجوزش کد 1 بود صفحات مدیر رو نشون بده یعنی
    response.redirect("felan.aspx") ,و اگر کد دسترسی نداشته بره به صفحه sorry.aspx یعنی تو برنامت یه صفحه sorry بساز و توش اخطار بده شما حق دسترسی ندارید وسلام شد تمام
    اگه نفهمیدی بگو تا مازولشو بنویسم واست بفرستم
    *******************************************
    یه برنامه نویس خوب از پرسیدن نمیترسه
     
    نوشته شده توسط Dim_Amin_As در ‏13 آگوست 2016

به اشتراک بگذارید