| |||||||
| المدوّنات | البحث | مشاركات اليوم | اجعل كافة المشاركات مقروءة |
|
| | LinkBack | أدوات الموضوع |
| |||||
| مثال لاستخدام السيشن في الحماية - صفحة دخول محمية asp.net مثال بسيط لصفحة دخول محمية المثال عبارة عن صفحتين الصفحة الاولى يوجد بها صندوق لكتابة كلمة المرور واخر لاسم المستخدم ويوجد زر عند الضغط عليه يقوم بالتحقق من اسم المستخدم وكلمة المرور واذا كانت صحيحه يحوله الي الصفحة الثانية تم تعريف متغير متغير لاسم المستخدم واخر لكلمة المرور ووضعه في السيشن (الجلسات) وفي حال تطابف كلمة المرور واسم المستخدم يسند اسم المستخدم لمتغير الاسم وكلمة المرور لمتغير كلمة المرور في السيشن وينتقل به للصفحة الاخرى ليعرض اسم المستخدم وكلمة المرور وتم اسناد قيم افتراضيه للسيشن وفي الصفحة الثانية في دالة تحميل الصفحة تم وضع شرط وهو انه اذا دخل المستخدم وكانت القيم الموجوده في السيشن نفسها القيم الافتراضيه فسوف يحوله الي الصفحة الاولى وهي صفحة تسجيل الدخول لان هذا يعني ان المستخدم لم يقوم بالمرور بالصفحة الاولى ولم يضع اسم المستخدم وكلمة المرور اي انه حاول الدخول للصفحة الثانية عبر وضع عنوانها في المتصفح مباشرة هذه هي فكرة المثال البسيط والاكواد للصفحات تكون هكذا كود الصفحة الاولى كود: Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' الشرط التالي يتحقق من ادخاله لقيم في صندوق اسم المستخدم وصندوق كلمة المرور
If TextBox1.Text = "" Then ' لم يدخل شيء في صندوق اسم المستخدم
Label3.Text = "الرجاء ادخل اسم المستخدم"
ElseIf TextBox2.Text = "" Then ' لم يدخل شيء في صندوق كلمة المرور
Label3.Text = "الرجاء ادخال كلمة المرور"
ElseIf TextBox1.Text = "" And TextBox2.Text = "" Then ' لم يدخل في الصندوقين
Label3.Text = "الرجاء ادخال كلمة المرور واسم المستخدم"
Else ' اي انه ادخل قيم في الصندوق لاسم المستخدم وكلمة المرور
If TextBox1.Text = "ahmad" And TextBox2.Text = "ahmadpass" Then
' الشرط للتحقق من صحة كلمة المرور واسم المستخدم
Session("User") = "ahmad" ' يسند اسم المستخدم للسيشن الخاص به
Session("Pass") = "ahmadpass" ' يسند كلمة المرور للسيشن الخاصه بها
Response.Redirect("WebForm2.aspx") ' يقوم بتحويله للصفحة الثانية
Else ' في حالة عدم توافق كلمة المرور واسم المستخدم مع المدخلات
Label3.Text = "خطأ في كلمة المرور او اسم المستخدم"
End If
End If
End Sub
'هنا نعرف نفس الكود ولكن في زر اخر وباسلوب يختلف قليلا عن الاسلوب في الزر الاول
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If TextBox1.Text = "" Then
Label3.Text = "الرجاء ادخل اسم المستخدم"
Exit Sub '' خروج من الدالة كاملة لكي نمنعه من تنفيذ باقي الكود بعد شرط التحقق
ElseIf TextBox2.Text = "" Then
Label3.Text = "الرجاء ادخال كلمة المرور"
Exit Sub ' خروج من الدالة كاملة لكي نمنعه من تنفيذ باقي الكود بعد شرط التحقق
ElseIf TextBox1.Text = "" And TextBox2.Text = "" Then
Label3.Text = "الرجاء ادخال كلمة المرور واسم المستخدم"
Exit Sub ' خروج من الدالة كاملة لكي نمنعه من تنفيذ باقي الكود بعد شرط التحقق
End If
' اذا وصل التنفيذ لهذه النقطة هذا يعني انه قد تخطى الشروط اعلاه
' دون ان يدخل في اي شرط منها - ولو كان قد دخل في اي شرط
' لكان قد نفذ الامر Exit Sub
'وهذا الامر يقوم باخراجه من الدالة كاملة ولن يصل لهذه المرحلة
If TextBox1.Text = "ahmad" And TextBox2.Text = "ahmadpass" Then
Session("User") = "ahmad"
Session("Pass") = "ahmadpass"
Server.Transfer("WebForm2.aspx")
Else
Label3.Text = "خطأ في كلمة المرور او اسم المستخدم"
End If
End Sub كود الصفحة الثانية كود: Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
If Session("User") = "0" And Session("Pass") = "0" Then
'اذا تحقق الشرط اعلاه هذا يعني ان الزائر لم يدخل لهذه الصفحة بطريقة
'شرعيه وهي من خلال تسجيل الدخول في الصفحة الاولى ولو كان قد سجل الدخول
'فكان يجب ان يتم تغيير القيم الافتراضيه للشيشن واسناد اسم المستخدم وكلمة المرور
'لذلك نقوم بتحويله واعادته للصفحة الاولى وهي صفحة تسجيل الدخول
Response.Redirect("WebForm1.aspx") ' هنا يقوم بتحويل الزائر الي الصفحة الاولى
Else
' اذا كانت هناك قيم اخرى في السشين فهذا يعني انه قد سجل دخول في الصفحة الاولى
' وقد قبل تسجيل دخوله وحوله بطريقة شرعية للصفحة الثانيه لذلك نقوم بعرض
' معلوماته وهي اسم المستخدم وكلمة المرور
Label1.Text = "اهلا وسهلا بك في لوحة تحكمك <br> اسم المستخدم : " & Session("User") & "<br> كلمة المرور : " & Session("Pass")
End If
End Sub تعريف ال سيشن session في ملف Global.asax كود: Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the session is started
Session("User") = "0" ' تم اسناد القيمة صفر كقيمة افتراضية للمتغير الخاص باسم المستخدم
Session("Pass") = "0" ' تم اسناد القيمة صفر كقيمة افتراضية للمتغير الخاص بكلمة المرور
End Sub في امان الله ولا تنسونا من دعائكم ابدا
__________________ احنا بكل فخر واخلاص باغة باروده ورصاص وصقور تحب المقناص بجو الأردن عاليه وفوق الأردن عاليه ........ | |||||
|
| |||||
|
السلام عليكم لا اخوي طبعا ماهو شرط انها تتعرف في الملف Global.asax ممكن تكتبها في المكان الي تبي تستخدمه فيه من المشروع وتستخدمها مباشرة بنفس الطريقة وهكذا يتم تعريف السيشن لحظة تنفيذ السطر الي انت معرف السيشن فيه طيب لنفرض عندك موقع ضخم وانت نفسك ماتعرف المستخدم في اي صفحة رح يبدأ التصفح ؟ ممكن يدخل اول شي المنتدى ومممكن يدخل الموقع وممكن يدخل في البداية صفحة جانبيه عاديه !! لو انت كنت معرف السيشن في صفحة الانديكس وفي دالة تحميل الصفحة فالمستخدم اذا دخل المنتدى ولم يمر بهذه الصفحة يعني السيشن عنده ماتعرف اقصد بتعريف السيشن هنا هو تسميته واسناد قيمة ابتدائية له لكن ملف ال Global.asax وتحديدا الدالة Session_Start هذه يتم تنفيذها اول دخول المتصفح للموقع ومن اي صفحة يدخل منها مو مهم لانه اول ما يدخل اي صفحة من صفحات موقعك رح يتم تعريفه دون مشاكل
__________________ احنا بكل فخر واخلاص باغة باروده ورصاص وصقور تحب المقناص بجو الأردن عاليه وفوق الأردن عاليه ........ | |||||
|
| |||||
|
اخوي جرب انت الان اعمل التالي في صفحة index.aspx عرف السيشن واسند له قيمة ابتدائية هي صفر مثلا في دالة تحميل الصفحة عرف السيشن بعدين استخدمه في جملة شرطية مثل المثال الي فوق مثلا لو كان السيشن قيمة صفر لا تدخله للصفحة وحولة للصفحة الثانية الكود في دالة تحميل الصفحة يكون هكذا كود: Session("X") = "0"
If Session("X") = "0" Then
Response.Redirect("WebForm2.aspx")
End If كود: Session("X") = "0" الان ادخل الصفحة رح اول شي يعرف السيشن يسند له قمية ابتدائية صفر بعدين يدخل الشرط ويحوله للصفحة الثانيه في الصفحة الثانيه اعمل نفس الكود في تحميل الصفحة ولكن خليه يحوله لموقع سوالف سوفت هذه المرة طبعا لا نريد اسناد قيمة ابتدائية للسيشن لاننا اسندنا قيمة في الصفحة الاولى تقدر تسند قيمة اوكي لكن مو منطقي اني في كل صفحة ارجع اعرفه من جديد واسند له القيمة من جديد في حدث تحميل الصفحة حط هذا الكود كود: If Session("X") = "0" Then
Response.Redirect("http://www.swalif.net")
End If جرب ادخل الصفحة الثانيه مباشرة مارح يحوله لسوالف سوفت لان مافي قيمة ابتدائيه للسيشن لانه ماتعرف اصلا والسبب عدم مرورك في الصفحة الاولى وهذه فائدة تعريفه في الملف فاذا عرفته في الملف وجربت تدخل الصفحة الثانيه مباشرة رح يكون تعرف عند تشغيلك للموقع وينفذ الشرط لو في اي ملاحظات ياريت تبلغني بها ولو في اي خطأ في كلامي كمان بلغني وبكون ممنون لك في امان الله وحفظة
__________________ احنا بكل فخر واخلاص باغة باروده ورصاص وصقور تحب المقناص بجو الأردن عاليه وفوق الأردن عاليه ........ | |||||
|
![]() |
| |
| |
| أدوات الموضوع | |
| |