ASP.NET Web Pages - دالة WebSecurity

وصف

يُقدم دالة WebSecurity الأمان والتوثيق لتطبيقات ASP.NET Web Pages.

من خلال دالة WebSecurity، يمكنك إنشاء حسابات المستخدمين، تسجيل الدخول والخروج، إعادة تعيين أو تغيير كلمات المرور وما إلى ذلك.

دليل Referencia لـ WebSecurity - Properties

خصائص وصف
CurrentUserId يُحصل على ID المستخدم الحالي.
CurrentUserName يُحصل على اسم المستخدم الحالي.
HasUserId يُحصل على القيمة التي تشير إلى ما إذا كان المستخدم الحالي يمتلك ID المستخدم. إذا كان كذلك، يُعاد true.
IsAuthenticated يُحصل على حالة التحقق من هوية المستخدم الحالي.

دليل Referencia لـ WebSecurity - Methods

خصائص وصف
ChangePassword() يُغيّر كلمة المرور للمستخدم.
ConfirmAccount() يُؤكد صحة الحساب ويُنشطه.
CreateAccount() يُنشئ حساب مستخدم جديد.
CreateUserAndAccount() يُنشئ حساب مستخدم جديد.
GeneratePasswordResetToken() يُنشيء رمز استعادة كلمة المرور الذي يمكن إرساله عبر البريد الإلكتروني للمستخدم.
GetCreateDate() يعود بـ تاريخ وتوقيت إنشاء الحساب العضوي المحدد.
GetPasswordChangeDate() يعود بـ تاريخ وتوقيت آخر تغيير كلمة المرور الخاصة بالحساب العضوي المحدد.
GetPasswordFailures
SinceLastSuccess()
يعود بالعدد المرات التي تم فيها إدخال كلمة المرور بشكل خاطئ منذ آخر تسجيل دخول أو إنشاء حساب عضوية.
GetUserId() يعود بـ ID المستخدم بناءً على اسم المستخدم المحدد.
GetUserIdFrom
PasswordResetToken ()
يعود ID المستخدم من رمز إعادة تعيين كلمة المرور.
InitializeDatabaseConnection() يتم تعيين نظام العضوية عن طريق الاتصال بقاعدة بيانات تحتوي على معلومات المستخدم.
IsAccountLockedOut() يعبر عن ما إذا كان حساب العضوية المحدد قد تم حجبه بسبب محاولات كلمة المرور الفاشلة.
IsConfirmed() يعود قيمة تشير إلى ما إذا كان المستخدم قد تم تأكيده.
IsCurrentUser() يعود قيمة تشير إلى ما إذا كان اسم المستخدم للمستخدم المحقق مطابقًا لاسم المستخدم المحدد.
Login() تسجيل المستخدم.
Logout() إلغاء تسجيل المستخدم.
RequireAuthenticatedUser() إذا لم يتم تسجيل المستخدم، قم بتعيين حالة HTTP إلى 401 (غير مسموح)
RequireRoles() إذا لم يكن المستخدم الحالي ينتمي إلى الدور المحدد، قم بتعيين رمز حالة HTTP إلى 401.
RequireUser() إذا لم يكن المستخدم الحالي هو المستخدم المحدد، قم بتعيين حالة HTTP إلى 401.
ResetPassword() إعادة تعيين كلمة المرور باستخدام رمز إعادة تعيين كلمة المرور.
UserExists() تحقق من وجود المستخدم.

بيانات التقنية

الاسم القيمة
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

تعيين قاعدة بيانات WebSecurity

قبل استخدام كائن WebSecurity، يجب إنشاء أو تعيين قاعدة بيانات WebSecurity.

في مجلد webroot، قم بإنشاء أو تعديل صفحة _AppStart.cshtml.

اكتب الكود التالي في هذا الملف:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", 
true);
}

يتم تشغيل الكود المذكور أعلاه في كل مرة يتم فيها تشغيل الموقع.

ـ"Users" هو اسم قاعدة بيانات WebSecurity. (Users.sdf)

ـ"UserProfile" هو اسم جدول قاعدة البيانات يحتوي على معلومات تكوين المستخدم.

"UserId" هو اسم العمود الذي يحتوي على معرف المستخدم (المفتاح الرئيسي).

"Email" هو اسم العمود الذي يحتوي على اسم المستخدم.

المعامل الأخير true هو قيمة منطقية تشير إلى أن يجب إنشاء جدول ملفات المستخدمين وجدول العضوية (إذا لم تكن موجودة)، وإلا فـ false.

نصيحة: على الرغم من أن true يشير إلى إنشاء تلقائي لجداول البيانات، إلا أن قاعدة البيانات نفسها لن تُنشأ تلقائيًا. يجب أن تكون موجودة.

قاعدة بيانات WebSecurity

كل سجل في جدول UserProfile يمثل مستخدمًا واحدًا، ويشمل معرف المستخدم (المفتاح الرئيسي) واسم المستخدم (البريد الإلكتروني):

UserId البريد الإلكتروني
1 john@johnson.net
2 peter@peterson.com
3 lars@larson.eut

جدول Membership يحتوي على معلومات العضوية، مثل متى أنشأ المستخدم حسابه وما إذا كان قد تأكد من عضويته (وفي أي وقت)

مثل هذا (لم يتم ذكر بعض الأعمدة):

UserId تاريخ الإنشاء تأكيد
الرمز
هل
تأكيد
الأخيرة
كلمة المرور غير صحيحة
كلمة المرور تغيير كلمة المرور
1 12.04.2012 16:12:17 NULL True NULL AFNQhWfy.... 12.04.2012 16:12:17

ملاحظة:إذا كنت ترغب في رؤية جميع الأعمدة والبيانات، فافتح قاعدة البيانات عبر WebMatrix، ثم قم بمراجعة كل جدول.

إعدادات عضوية بسيطة

إذا لم يتم تكوين موقعك لاستخدام نظام عضوية ASP.NET Web Pages SimpleMembership، قد تحدث أخطاء عند استخدام عنصر WebSecurity.

إذا كانت إعدادات مزود الخدمة مختلفة عن خادمك المحلي، فقد تحدث أخطاء. لحل هذه المشكلة، قم بإضافة العناصر التالية إلى ملف Web.config الخاص بالموقع:

<appSettings> 
<add key="enableSimpleMembership" value="true" /> 
</appSettings>