مثال بسيط لصفحة دخول محمية
المثال عبارة عن صفحتين
الصفحة الاولى يوجد بها صندوق لكتابة كلمة المرور واخر لاسم المستخدم
ويوجد زر عند الضغط عليه يقوم بالتحقق من اسم المستخدم وكلمة المرور واذا كانت صحيحه يحوله الي الصفحة الثانية
تم تعريف متغير متغير لاسم المستخدم واخر لكلمة المرور ووضعه في السيشن (الجلسات)
وفي حال تطابف كلمة المرور واسم المستخدم يسند اسم المستخدم لمتغير الاسم وكلمة المرور لمتغير كلمة المرور في السيشن
وينتقل به للصفحة الاخرى ليعرض اسم المستخدم وكلمة المرور
وتم اسناد قيم افتراضيه للسيشن وفي الصفحة الثانية في دالة تحميل الصفحة تم وضع شرط وهو انه اذا دخل المستخدم وكانت القيم الموجوده في السيشن نفسها القيم الافتراضيه
فسوف يحوله الي الصفحة الاولى وهي صفحة تسجيل الدخول لان هذا يعني ان المستخدم لم يقوم بالمرور بالصفحة الاولى ولم يضع اسم المستخدم وكلمة المرور
اي انه حاول الدخول للصفحة الثانية عبر وضع عنوانها في المتصفح مباشرة
هذه هي فكرة المثال البسيط والاكواد للصفحات تكون هكذا
كود الصفحة الاولى
كود:
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
في امان الله ولا تنسونا من دعائكم ابدا