الدرس الثالث: التعامل مع الـ Login Controls في ASP.NET

by طلال الحضبي 29. رجب 1429 22:35

السلام عليكم ورحمة الله وبركاته ...

 

كنا قد تكلمنا في الدرس السابق الدرس الثاني: تعريف الـ Roles و Members في ASP.NET و أيضاً الدرس الأول: إنشاء قاعدة بيانات Membership و Role في ASP.NET عن إنشاء قاعدة بيانات للـ Membership و Roles الخاصة بالـ ASP.NET و كذلك تعاملنا مع Roles و Memebers في ASP.NET Web site Administrator Tool و قمنا باضافة AdminRole و UserRole و قمنا باضافة ثلاثة مستخدمين، أحدهم في AdminRole و الآخر في UserRole و الأخير بدون أي Role.

في الدروس السابقة كنت اوضح بعض الأمور بأدق التفاصيل و لكن في هذا الدرس و الدروس التي تليه، سوف أتكلم بشرح اعم قليلاً، خصوصاً انه من المفترض انه لديك خبرة من قبل في ASP.NET.

 

في البداية سوف تجد في Toolbox في الجهة اليسرى مجموعة من الـ User Controls و من ضمنها سوف تجد Login كما في الشكل أدناه:

هذه الأدوات هي ادوات جاهزة قامت شركة مايكروسوفت بتطويرها للتعامل مع إدارة المستخدمين مثل تسجيل الدخول، و تسجيل مستخدم جديد، و كذلك تغير كملة المرور، و ما إلى ذلك ... كل هذا سوف نشاهده في هذا الدرس إن شاء الله.

الآن يوجد لدينا صفحة البداية في المشروع في Visual Studio .net باسم Default.aspx

الان لننشئ صفحة باسم Login.aspx. و لنقم بسحب الكنترول Login كما في الصورة:

و لنفلته على الصفحة Login.aspx وسوف يكون شكلها كالآتي:

و يوجد المثلث في الزاوية العلوية اليمنى، تستطيع تغيير الكنترول من خلاله Format.

 

الآن لتتجه إلى ملف Web.Config و ابحث عن authentication mode="Forms" و قم بعمل التغييرات التالية:

    <authentication mode="Forms">
      <forms loginUrl="~/login.aspx" />
    </authentication>


    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization> 

في هذا الكود قمنا بتحديد ان صفحة الـ Login موجودة في الصفحة Login.aspx.

و في الجزء الثاني authorization و الخاص بتحديد الصلاحيات قمنا بعمل خاصيتين هما Allow "التصريح" و Deny "المنع".

في Allow  قلنا انه يحق الدخول للمشروع لكل المستخدمين المسجلين لدي و في الـ Deny  حددنا انه سيتم منع بقية المستخدمين من الدخول.

أي انه سوف يسمح بالدخول للـ Admin و User و AnyUser الذي قمنا بادخالهم في الدرس السابق.

و افيد انه يوجد العديد من الخيارات الأخرى للتصريح و المنع سوف نراها لاحقاً إن شاء الله.

و الآن هذا التعريف في Web.Config صرحنا بأنه لابد من التسجيل لكي يدخل الشخص الموقع الخاص بنا.

الآن قم بتنفيذ البرنامج و افتح صفحة Default.aspx لاحظ انه اعاد توجيهك بشكل تلقائي إلى الصفحة Login.aspx كما في الصورة أدناه:

 

و الان ادخل بأي مستخدم من المستخدمين الذين قمنا بإنشائهم في الدرس السابق و سوف تلاحظ انه سمح لهم بالدخول.

 

الآن لنقم بانشاء صفحة اسمها CreateUser.aspx و ذلك لكي نسمح لزوار الموقع بالتسجيل...

و في هذه الصفحة لنسحب الكنترول CreateUserWizard و يمكنك تغيير الـ Format كما في الشكل التالي:

و في صفحة الـ Login.aspx لنضع رابط يشير إلى صفحة التسجيل كما في الشكل:

 

و الآن لنشغل البرنامج ...و نختبر صفحاتنا البسيطة ...

عندما نتفذنا Default.aspx قام ASP.NET باعادة توجيهنا إلى Login.aspx ...

لنقم الآن بتجربة الصفحة CreateUser.aspx و ذلك بالضغط على الرابط New User? Click here.

سيقوم هذا الرابط بتوجيهنا إلى CreateUser.aspx و لكن لا يحق لنا الدخول إلى الرابط CreateUser.aspx  بحسب التعريف الذي قمنا به في Web.Config!!

الحل هو التوجه إلى Web.Config و بعد   </system.web> اكتب الكود التالي:

  <location path="CreateUser.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>
  </location>

في هذا الكود، اخبرنا ASP.NET بأن صفحة CreateUser.aspx سوف يكون لها خصائص دخول خاصة بها و هي "انه يسمح بتواجد جميع المستخدمين الغير مسجلين لدي".

لننفذ البرنامج مرة أخرى و لنذهب إلى صفحة CreateUser.aspx ... و لنقم بعمل مستخدم جديد ... لنسمه test مثلاً ... و بعد انشاء هذا المستخدم سوف تظهر لنا الرسالة التالية:

و لكن عند الضغط على Continue لن يحدث شيء لذلك لنغلق التطبيق و نذهب إلى الصفحة CreateUser.aspx و من ثم اختر خصائص الكنترول CreateUser و من ثم في ContinueDestinationPageUrl اختر الصفحة Default.aspx

كما انه يمكنك تغيير كل هذه الخصائص و تحول اللغة إلى العربية إن شئت.

الآن من المفترض ان يعمل كل شيء على ما يرام.

 

الآن في الجزء الذي كتبناه سابقاً:

     <authorization>
      <deny users="?" />
      <allow users="*"/>
    </authorization>

لنزيل السطر <deny users="?" />  و ذلك سيسمح لجميع المستخدمين الدخول إلى النظام ...

في الصفحة Default.aspx اسحب الكنترول LoginView و افتح  المثلث الصغير في الركن الايمن العلوي مثل الصورة:

سوف تجد قالبين أحدهما سيظهر للمستخدمين الذي لم يسجلوا الدخول و الآخر للمستخدين الذين سجلوا الدخول ... في القالب الخاص للمستخدمين  الذيم لم يسجلوا الدخول ... اسحب الكنترول Login داخلة و نضيف الرابط مثل صفحة Login.aspx...كما في الصورة:

 

و الآن لنستخدم  القالب الآخر، لنسحب الكنترول LoginName و الذي يظهر اسم المستخدم المسجل، و لنكتب قبله Welcome... كما في الشكل:

و في اعلى الصفحة و خارج LoginView1 لنضع الكنترول LoginStatus والذي يظهر وضع المستخدم هل هو مسجل أم لا ... كما في الصورة:

الآن لننفذ البرنامج ... لنلاحظ شكل الصفحة Default.aspx كما في الشكل:

لاحظ اننا في الصفحة Default.aspx و ان LoginStatus يوجد رابط Login لأننا لسنا مسجلين النظام و الآن لتقم الدخول بأحد الاسماء التي سجلناها في هذا الدرس او الذي سبق ...

و بعد تسجيل الدخول لاحظ ان LoginStatus اصبحت Logout لأننى الآن قمنا بالتسجيل ...

و قام LoginView باظهار القالب الخاص بـ Loggedin كما في الشكل:

كما ان LoginName اظهر لنا اسم المستخدم الموجود و هو Admin.

 

و لاحظ انه توجد كنترول خاصة باستعادة كلمة المرور و أخرى خاصة بتغيير كلمة المرور و كلها تعمل بنفس المبداء ...

 

و في الدرس القادم سوف نتحدث عن تحديد صلاحيات أكبر للـ Roles و Users ... على مستوى الصفحات و المجلدات ...

 

مع تحياتي ... طلال

البطاقات: , , ,

التصنيفات: .NET | ASP.NET | C# | الإنترنت | أمن المعلومات

التعليقات

اضف تعليق


(سيظهر Gravatar أيقونة)

  Country flag

biuquote
  • تعليق
  • استعراض
Loading



التقويم

<<  ذو القعدة 1429  >>
الالالالالالال
2728291234
567891011
12131415161718
19202122232425
262728293012
3456789

أظهر المواضيع في تقويم أكبر

آخر التعليقات

Comment RSS

إخلاء مسؤولية
جميع الآراء التي تم التعبير عنها هنا هي آرائي الشخصية وهذه الاّراء لا تمثل وجهة نظر عملي على أي حال.
© جميع الحقوق محفوظة 2008 مدونة طلال


* الموقع غير مسؤول عن أي شفرة برمجية يتم تنفيذها.
* تأكد قبل تنفيذ أي شفرة برمجية بأن تأخذ نسخة إحتياطية من نظامك أولاً.
* نفذ أي شفرة برمجية في بيئة التطوير أولاً، و تأكد من أنها تعمل بشكل صحيح قبل تنفيذها على البيئة التطبيقية.

يسمح بنقل المواضيع من المدونة ولكن بشرط الإشارة إلى المصدر.