PDA

View Full Version : راهنمایی در مورد کار با sessionها



shazde_f
چهارشنبه 09 بهمن 1387, 13:20 عصر
سلام دوستان
خسته نباشید
من تازه asp.net رو شروع کردم و سؤالات زیادی در مورد session برام پیش اومده.
البته من می دونم که مقصود از استفاده ی session در برنامه ها چیه.یعنی به صورت تئوری می دونم!!!
اما نمی دونم session باید در کجا نوشته بشه.
مثلاً من یه برنامه دارم که توش یه صفحه ی لاگین دارم.می خوام وقتی کاربر لاگین کرد اطلاعات مربوط به اون در صفحه ی دوم نمایش داده بشه.(مثل نام و نام خانوادگی و سن و...)
حالا نمی دونم session مربوط به اون رو کجا باید تعریف کنم.یعنی نمی دونم stringای رو که کاربر در textbox مربوط به username وارد می کنه در کدوم بخش از کد باید به session نسبت داده بشه.
اگر لطف کنید و یه برنامه به زبان سی شارپ در اختیارم بذارید یا اینکه راهنماییم کنید ممنون می شم.
باتشکر

emad11
چهارشنبه 09 بهمن 1387, 13:36 عصر
به ین صورت یک session مقدار میگیره :


Session["Username"] = textbox1.text


برای استفاده از مقدار داده شده بهsession در صفحه ی دیگر :


string user = Convert.ToString(Session["Username"]);

r_mehrizi
چهارشنبه 09 بهمن 1387, 13:44 عصر
تابع login_manage مقدار يوزر و پسوردي كه كاربر وارد نموده را مي گيره داخل db بررسي ميكنه اگه اين يوزر و پسورد را پيدا كرد ركورد مربوط به اون رو بر مي گردونه از اين ركوردي كه برگردونده ميشه ما كليد اصلي را كه اسمش m_id هستش داخل session مي ريزيم و به صفحه بعد مي ريم در صفحه بعد session راچك مي كنيم اگه مقداري داخل اون نبود مي گيم به صفحه login بر گرده


Partial Class login
Inherits System.Web.UI.Page
Private Function Validate_Value() As Boolean
If Me.txtu_user.Text.Trim = "" Or Me.txtu_pass.Text.Trim = "" Or Me.Drop_type.SelectedValue = 0 Then
Return False
Else
Return True
End If
End Function
Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_login.Click
If Validate_Value() Then
If Login() Then
Else
Me.lbl_error.Text = "نام کاربری و یا کلمه عبور شما نادرست است."
End If
Else
Me.lbl_error.Text = "لطفا نام کاربری ، کلمه عبور و گروه کاری خود را را وارد نمایید."
End If
End Sub

Private Function Login() As Boolean
Dim cls As New managebll
Dim dt As New vahed.tbl_manageDataTable
If Me.Drop_type.SelectedValue = "1" Then
dt = cls.Login_manage(Me.txtu_user.Text.Trim, Me.txtu_pass.Text.Trim)
If dt.Rows.Count = 1 Then
Session("m") = dt.Rows(0).Item("m_id")
Response.Redirect("manage/default.aspx")
Else
Return False
End If
End If
Dim cls1 As New studentBLL
Dim dt1 As New vahed.tbl_studentDataTable
If Me.Drop_type.SelectedValue = "2" Then
dt1 = cls1.Login_student(Me.txtu_user.Text.Trim, Me.txtu_pass.Text.Trim)
If dt1.Rows.Count = 1 Then
Session("s") = dt1.Rows(0).Item("s_id")
Response.Redirect("student/default.aspx")
Else
Return False
End If
End If
End Function
End Class


Partial Class pages_Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Session("s") Is Nothing Then
Response.Redirect("~/pages/Login.aspx")
Exit Sub
End If
End Sub
End Class

emad11
چهارشنبه 09 بهمن 1387, 14:15 عصر
میخوای این کد رو به C#.NET تبدیل کنی؟

shazde_f
چهارشنبه 09 بهمن 1387, 14:59 عصر
تابع login_manage مقدار يوزر و پسوردي كه كاربر وارد نموده را مي گيره داخل db بررسي ميكنه اگه اين يوزر و پسورد را پيدا كرد ركورد مربوط به اون رو بر مي گردونه از اين ركوردي كه برگردونده ميشه ما كليد اصلي را كه اسمش m_id هستش داخل session مي ريزيم و به صفحه بعد مي ريم در صفحه بعد session راچك مي كنيم اگه مقداري داخل اون نبود مي گيم به صفحه login بر گرده


ممنون از راهنماییتون.
اما من باز دقیقاً متوجه نشدم که در کدوم تابع باید seesion را نسبت بدم.
اجازه بدید دقیقتر عرض کنم:
آیا باید session رو در تابع Session_Start مقداردهی کنم؟اگرنه پس تابع Session_Start اصلاً به چه کاری میاد؟

shazde_f
چهارشنبه 09 بهمن 1387, 15:00 عصر
میخوای این کد رو به C#.NET تبدیل کنی؟
دوست عزیز چطور می تونم کدش رو به C# تبدیل کنم؟

emad11
چهارشنبه 09 بهمن 1387, 15:20 عصر
ممنون از راهنماییتون.
اما من باز دقیقاً متوجه نشدم که در کدوم تابع باید seesion را نسبت بدم.
اجازه بدید دقیقتر عرض کنم:
آیا باید session رو در تابع Session_Start مقداردهی کنم؟اگرنه پس تابع Session_Start اصلاً به چه کاری میاد؟

عزیز برای مقدار دهی به session همونطور که گفتم باید عمل کنی .
بدون نیاز به استفاده از تابعی خاص چون با این کار عملا یک session با نام username ساخته میشه و مقدارش برابر Value :


session["username "] = Value

از این روش هم برای تعریف و مقدار دهی به session می تونی استفاده کنی :


session.add("username",value

پارامتر اول نامی کی میخوای به session بدی.
پارامتر دوم مقداره مثلا textbox1.text که مقدار textbox1 رو داخل session ی با نام username میریزه :


session.add("username",textbox1.text

WorldVbMan
پنج شنبه 10 بهمن 1387, 06:22 صبح
ممنون از راهنماییتون.
اما من باز دقیقاً متوجه نشدم که در کدوم تابع باید seesion را نسبت بدم.
اجازه بدید دقیقتر عرض کنم:
آیا باید session رو در تابع Session_Start مقداردهی کنم؟اگرنه پس تابع Session_Start اصلاً به چه کاری میاد؟

حتماً یه Button داری كه كاربر توسطش درخواست Login می كنه دیگه درسته، باید در رویداد كلیكش این مقداردهی و بررسی Session رو انجام داد
ضمناً رویداد Session_start واسه آغاز درخواست یك متقاضی از سایته یعنی هر كی باشه چه كاربر چه مهمان اگه درخواست سایت رو بده واسش یه جلسه ی كاری یا همون Session آغاز میشه و این رویداد فراخوانی میشه
انشاء ا... كه منظور رو درست فهمیده باشم

shazde_f
پنج شنبه 10 بهمن 1387, 11:14 صبح
حتماً یه Button داری كه كاربر توسطش درخواست Login می كنه دیگه درسته، باید در رویداد كلیكش این مقداردهی و بررسی Session رو انجام داد
ضمناً رویداد Session_start واسه آغاز درخواست یك متقاضی از سایته یعنی هر كی باشه چه كاربر چه مهمان اگه درخواست سایت رو بده واسش یه جلسه ی كاری یا همون Session آغاز میشه و این رویداد فراخوانی میشه
انشاء ا... كه منظور رو درست فهمیده باشم

باتشکراز راهنمایی دقیقتون
پس یعنی من اگر بخوام اعمالی رو برای کاربری خاص(بعد از ورودش به صفحه) انجام بدم باید از این رویداد استفاده کنم،درسته؟
ممنون