تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Membership Authentication & Roles Authorizationالجزء الثاني
#1
كاتب الموضوع عمر المستشار

السلام عليكم ورحمة الله وبركاتة ناتي الان الى الجزء الثاني من ال

Membership Authentication & Roles Authorization

بناء صفحة لتسجيل المستخدمين "register.aspx" :
أعتقد أن اسم الصفحة يصف مهمتها، بم بإضافة صفحة بإسم register.aspx بالشكل التالي :


لن نكتب كود تصميم الصفحة تركتة لكم في المثال المرفق وفي حدث تخزين الاسم للعضة نكتب الكود التالي

/******************
saveButton_Click handler
************
protected void saveButton_Click(object source, EventArgs e)
{
Utilities.RegisterNewUser(usernameTextBox.Text, passwordTextBox.Text, emailTextBox.Text);
statusLabel.Text = string.Format("Thank you '{0}' for yourregistration.", usernameTextBox.Text);
}
[/code]
إضافة صفحة تسجيل الدخول "login.aspx" :
هذه الصفحة لا تحتاج إلى شرح، ولكن قبل أن نضيفها أود أن أخبركم بأنه لن نستخدم الـ Login Control الموجود في الأدوات بل سنستخدم فقط TextBox للقيام بعملية الـ Authentication Formalities، ولكن قبل ذلك يجب أن نضيف AuthenticateUser Method في الـ Utilities Clss والغرض منها هو القيام بعملية الـ Authentication Formalities، كما هو موضح في التالي :
[code]

publicstaticboolAuthenticateUser(stringusername,stringpassword)
{
boolisAuthenticated=false;
using(SqlConnectioncon=newSqlConnection(connectionString))
{
SqlCommandcmd=newSqlCommand(
"select count(uname) fromusers_tbl where uname=@uname and password=@password",
con);
cmd.Parameters.AddWithValue("uname",username);
cmd.Parameters.AddWithValue("password",password);
con.Open();
isAuthenticated=int.Parse(cmd.ExecuteScalar().ToString())==1;
}
returnisAuthenticated;
}
[/code]
الآن سنقوم بإنشاء صفحة الـ login.aspx وسوف نرى كيفية إستخدام System.Web.Security.FormsAuthentication.RedirectFr omLoginPage حيث أنها ستقوم بتسجيل cookie في متصفح المستخدم يدل على أن هذا المستخدم تم المصادقة عليه وبعد ذلك سيتم إعادة توجيهه إما إلى الصفحة التي تطلب فيها تسجيل الدخول (أي كانت خاصة بحيث لا يدخلها من ليس له حساب أو من يجب أن ينتمي إلى مجموعة أو Role معين، سوف نراى ذلك لاحقا)، أو إلى الصفحة الإفتراضية التي تم تحديدها في ملف web.config في العنصر authentication، كما هو موضح في الكود التالي :
[code]

لن نكتب كود تصميم الصفحة اتركة لكم في المرفقات وادناة الكود البرمجي الخاص بزر الدخول
******************
loginButton_Click handler
***********/
protected void loginButton_Click(object source, EventArgs e)
{
if (Utilities.AuthenticateUser(usernameTextBox.Text, passwordTextBox.Text))
FormsAuthentication.RedirectFromLoginPage(username TextBox.Text, false);
else errorLoginLabel.Visible = true;
}
[/code]


طبعا لو تلاحظوا الـ System.Web.Security.FormsAuthentication.RedirectFr omLoginPage تاخذ two arguments الأولى عبارة عن إسم المستخدم الي راح يصدر له Cookie اما الثانية فهي قيمة بولينية لو true معناته إن الـ cookie راح تكون دائمة أو ثابته "Persistence"، لو كان false فمعناته راح تنتهي "expire" الـ cookie بمجرد ما يقوم المستخدم بإغلاق المتصفح، لاحظوا إننا أرسلنا الـ argument الثاني بقيمة false ويعود السبب إلى إمكانية حفظ الـ cookie لمدة 50 سنة (can you believe that crap!!!!) وهذا قد يولد ثغرة إمكانية التنصت أو أخذ الـ cookie وبالتالي راح نخسر الـ privacy factor.

إضافة LoginName Control في الصفحة "Default.aspx" :
سوف نقوم بإضافة LoginName Control في الصفحة المذكورة أعلاة فقط لنرى هل سوف تقوم الـ ASP dotNet فعلا بتسجيل cookie وبالتالي ظهور اسم المستخدم أم لا، ,وأيضا سوف نستخدم الـ LoginStatusControl وهو يقوم بعرض رابط إما تسجيل الدخول أو تسجيل الخروج على حسب حالة المستخدم الذي يتصفح الصفحة ، قم بكتابة التالي :
expand |plain text
<h3 style="text-align: center;">
Default.aspx
</h3>
<p>
<asp:LoginName ID="loginName" runat="server" FormatString="Welcome '{0}'" />
</p>
<asp:LoginStatus ID="loginStatus" runat="server" LoginText="Click here to login"
LogoutText="Click here to logout" />
<br />
<a href="register.aspx">Not registered? What are you waiting for ?</a>


لاحظوا أن الـ LoginStatus سيقوم بقراءة الإعدادات من ملف web.config والمقصود بها صفحة تسجيل الدخول والصفحة الإفتراضية التي سيعاد توجيه المستخدم إليها بعد تسجيل الخروج

بعد كل ما تم شرحه بقي علينا أن نرى كيفية إضافة Roles وكيفية تحديد مستوى الوصل إلى بعض موارد الموقع إما على حسب حالة المستخدم (Authenticated / Anonymous) أو على حسب أي Role ينتمي إليه المستخدم. بإذن الله سنكمل في الدرس القادم.

أتمنى أن أكون قد أصبت في قولي وأن يكون شرحي واضح وموجزوأيضا أتمنى لكم التوفيق.

مرفق المشروع الذي أستند عليه في شرحي هذا


الله يبارك بيك اخي كاتب هذة المقالة الاكثر من رائعه الف الف شكر

المصدر


المثااال


الملفات المرفقة
.zip   MembershipAndRoles.zip (الحجم : 184.56 ك ب / التحميلات : 51)
الرد }}}
تم الشكر بواسطة: salah4salah@gmail.com


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  عمل Web Service خاصة بك من خلال .net - الجزء الثاني RaggiTech 0 2,581 14-10-12, 03:14 PM
آخر رد: RaggiTech
  Membership Authentication &amp; Roles Authorization الجزء الاول RaggiTech 1 2,814 29-09-12, 01:24 PM
آخر رد: RaggiTech
  دورة تصميم موقع اخباري بasp.net الجزء الثاني ......... محمد الساعدي 4 4,761 24-09-12, 11:46 PM
آخر رد: محمد الساعدي

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم