سؤال

في الموقع, أنا بحاجة إلى دمج العضوية والتوثيق.إذا كنت ترغب في استخدام وظيفة ASP.NET العضوية غير مخصص الأشياء "المستخدم" يجب أن تفعل.

لذلك أنا أجلس هنا مع قلم رصاص و ورقة رسم خطوط بلدي نموذج المجال...وكيف يمكنني الاستفادة من أفضل ASP.Net عضوية, ولكن تمتد إلى سد احتياجات بلدي ؟

يجب إنشاء فئة يرث من MembershipUser وتوسيعه مع بلدي الخصائص و الأساليب (وحفظ هذا في طاولة منفصلة).أو أن أترك MembershipUser تكون الملكية على العرف المستخدم/العميل الكائن ؟

ماذا سيكون صلبة جيدة طريقة للقيام بذلك ؟

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

المحلول

ولقد فكرت في ذلك، وهناك 2 طرق التي تبدو مناسبة (طبعا هناك المزيد من الطرق والعمل على انجاحه).

مزود العضوية مخصص

ويمكنك تغيير مزود العضوية لاستخدام بنفسك واستخدام الكائن العضو لتخزين كافة المعلومات.

والمشكلة مع هذا واحد هو أنه ينطوي على الكثير من إعادة التنفيذ من الأشياء التي هي بالفعل التعامل معها بشكل جيد من قبل Asp.Net. الشيء الجيد هو أن لديك كائن مستخدم واحد مع كل التفاصيل.

وصلة من عضوية العضو في العضو الخاص بك

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

وانها حقا من السهل اقامة، كل ما تحتاجه لإنشاء خدمة التي يمكن استخدامها مثل هذا:

string userName = "Jon Skeet";
User user = new UserManagementServices().GetUserByUserName(userName);

نصائح أخرى

لقد انتهى من كتابة بلدي عضوية-مقدم ، ونفذت ذلك في فصل 3 حلول الآن.هو بسيط للغاية و أكثر من ذلك بكثير أنيقة من ربط المستخدم إلى membershipUser (وأنا أيضا).

قراءة هذا...:

إنشاء مخصص عضوية مقدم ASP.NET موقع الأمن

وإذا كنت ترغب في معرفة المزيد, مشاهدة هذا الفيديو (مع المصدرية).

ولقد امتدت MembershipUser وخلق نسختي الخاصة من SqlMembershipProvider لتعيين نطاقي القائمة، والتي تعمل بشكل جيد، في الإنتاج الآن.

وMembershipUser هو في جوهره عرض على مائدتي العضو. وتشمل صفي MembershipUser بمد خصائص ملف التعريف / على غرار الحساب بدلا من استخدام نظام SqlProfileProvider الافتراضي، الذي لا يزال هشا بعض الشيء.

وأنا لم أكن قادرا على استخدام الجداول العضوية القائمة أو sprocs، ولكن كتب بلدي. على سبيل المثال، يستخدم SqlMembershipProvider على GUID كمفتاح مبهمة، ولكن يستخدم نظام الإنتاج وكثافة العمليات سهل القديمة. كل التواريخ تستخدم GMT، وما إلى ذلك أيضا.

ويتم الوصول إلى جميع وظائف العضو إضافية عبر المجال المستخدم لا عن طريق وسائل العضوية.

وHTH.

وأنا أعمل حاليا من خلال مايكروسوفت ASP.NET 2.0 API العضوية مددت المقالة من مجلة القانون وهو ما يفسر كيفية توسيع عضوية API من خلال كتابة التفاف حول الفئات الموجودة. الفائدة الرئيسية هي أن تتمكن من الحفاظ على جميع من وظائف مربع وليس لديك لكتابة الخاصة بك كما تفعل عند تنفيذ مزود المخصصة. يتم توفير شفرة المصدر.

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