سؤال

تخزين بيانات المستخدم في MSSQL جدول يسمى المستخدمين.ما أريد هو أن يكون الوصول إلى جميع بيانات المستخدم في تسجيل المستخدم (البريد الالكتروني, العنوان, الهاتف, إذا كان المستخدم المشترك.... الخ).

أنا لا ترغب في استخدام التشكيلات الجانبية لذلك قررت أن استخدام مخصص MembershipProvider (أو هل تعرف بعض أفضل وأقل إيلاما الطريقة؟).

ما لا أفهمه هو MembershipUser و العضوية.إذا كنت inherite من MembershipProvider في تنقضها أساليب يمكنني التحكم في الوصول إلى البيانات من و إلى قاعدة البيانات الخاصة بنا.

ولكن كيف يمكنني استخدام ورثت فئة من MembershipProvider?إذا كنت تريد أن مصادقة المستخدم باستخدام العضوية يجب أن أقوم به:

if(Membership.ValidateUser(string username, string password))
{
   FormsAuthentication.RedirectFromLoginPage(string username, string password);
}

ولكن أين هي فئة موروثة من MembershipProvider?و عند استخدام فئة موروثة من MembershipUser?و ما هي العلاقة بين عضوية MembershipProvider?

هل كانت مفيدة؟

المحلول

في حين انها ليست واضحة وضوح الشمس على MSDN, ليس الامر بهذا التعقيد.هناك ثلاثة فصول:

  • العضوية:توفر الأداة المساعدة أساليب نقطة الدخول الأساس المفرد (ثابت الدرجة).
  • MembershipProvider:بمثابة بيانات ثانوي و مصنع MembershipUser الكائنات.
  • MembershipUser:يمثل المستخدم الفردية.

مخصص MembershipProvider هو المختارة (عن طريق رمز في عضوية) استنادا إلى التطبيق الخاص بك التكوين:التكوين/النظام.على شبكة الإنترنت/عضوية.هنا حيث يمكنك إحضار الخاص بك موفر في اللعب.الخاص بك MembershipProvider التنفيذ يجب أن تكون مكتوبة الوصول إلى ما مخزن البيانات كنت تفضل للمستخدمين:المستخدم الخاص بك الجدول في هذه الحالة.

MembershipUser الأشياء فقط التي تم إنشاؤها خلال MembershipProvider.على MembershipProvider.ValidateUser() الأسلوب يجب أن تفقد البيانات الخاصة بك مخزن المستخدم/كلمة المرور مزيج صالح.على MembershipProvider.GetUser() باسترداد معلومات المستخدم -- استخدامه في الوصول إلى المحمية الصفحة و تمر في النظام.ويب.HttpContext.الحالي.المستخدم.الهوية.اسم الحالية مصادقة المستخدم.

قال هذا ، أتمنى أن تكون متأكد من أنك لا تريد أن استخدام التشكيلات, و تريد حقا أن يكون منفصل الجدول المستخدم.إذا كنت تقوم بكتابة تطبيق داخلي باستخدام القائمة "Active Directory" أو LDAP-تمكين مخزن البيانات من شأنه أن يقلل تكاليف الإدارة وربما المخاطر الأمنية.هناك مئات من الأشياء التي يمكنك القيام به بسهولة الخطأ عندما تسير في MembershipProvider الطريق.هل تستخدم المملحة?كيف يمكن حماية الجدول المستخدم ضد التلاعب ؟ MSDN يغطي سوى جزء صغير من القضايا الأمنية قد تواجه.

نصائح أخرى

ويتم التحكم في مزود معين المستخدمة في الملف web.config. يمكنك فعلا وضع أكثر من 1 موفر، ولها افتراضية واحدة. تحقق: http://msdn.microsoft.com/en-us/library/ 6e9y4s5t.aspx .

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top