سؤال

وأنا باستخدام SQLMembershipProvider وتريد إضافة حمولة مزيد من المعلومات عن المستخدمين. هذه هي أفضل طريقة للقيام بذلك لإنشاء DB جديد وإجراء إدخال لكل مستخدم جديد كما أنها يتم إنشاؤها؟ إذا كان الأمر كذلك، هل هناك أي سبب لعدم استخدام قيمة SQLMembershipProvider معرف المستخدم مثل PK في الجدول المستخدمين في بلدي DB الجديد؟

وأو، هل هناك أي أسباب وجيهة لإنشاء هوية المستخدم الجديد في بلدي DB جديد واستخدام SQLMembershipProvider معرف المستخدم باسم FK؟

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

المحلول

وأنا لا أستطيع التفكير في السبب لماذا لا تعمل أو لماذا يجب أن لا تفعل ذلك بهذه الطريقة (معرف المستخدم كما PK)

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

نصائح أخرى

إذا كنت على وشك أن إعادة كتابة موفر العضوية أود أن تبديل كافة الأعمدة PK لBITINT من GUID. وأود أن تفعل هذا لسببين. أحد أرقام تسلسلية هي أسهل بكثير من العمل مع وفهم وثانيا هناك مزايا الأداء باستخدام BIGINT بدلا من GUID معرفات. وأود أيضا أن مجرد استخدام مقالي الهوية الخاصة التي يمكن استخدامها لمثل الجداول الأخرى في التطبيق وإزالة تلك التي تأتي بشكل افتراضي في موفر العضوية SQL. للقيام بذلك سوف تحتاج إلى توفير رمز لكل وظيفة في مزود، ومهمة لا صغيرة.

ولقد خلق التفاف حول بلدي مخطط قاعدة البيانات الموجودة، مع فئة مشتقة من MembershipUser الذي يحتوي على خصائص إضافية، ومشتق MembershipProvider أن يخلق حالات من الطبقة MembershipUser مشتقة.

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

ويجري حاليا استخدام هذا الحل على العديد من المواقع، ويعمل بشكل جيد.

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