الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أستفسار عن أستخدام الـ ASP.NE Membership مع الـ code first

بدأه D a r K T o u c h في 23 أبريل 2012 · 6 رد · 897 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

تحية طيبة أخواني...

عند أستخدامي للـ ASP.NET MVC تعلمت طريقة أستخدام الـ Entity Framework Code First لأنشاء قاعدة البيانات.

لكن لو أريد التعامل مع الـ ASP.NET Membership Database هل سأحتاج بأن أمثلها بإستخدام الـ code first ؟,أو أستخدمها عن طريق الـ API التي تتوفر لهذه القاعدة أو الجداول أذا ما تم جعلهم في قاعدة بيانات واحده؟

My Latest

Hello Entity Framework Code First

--------------------

#2

السلام عليكم ورحمه الله وبركاته

اخي طريقة الـ Code First تستخدم مع الـ Entity Framework فأعتقد لايمكن استخدامها مع الـ Membership لأنه هيكلية جداولها معرفة مسبقا ..

1

.:: Wish to become better and better ::.

#3

السلام عليكم

في MVC لا يمكن استخدام ادوات ال login بالتالي Membership اصبح بلا فائدة .

الحل ابحث وخاصة في CodePlex

احدى النتائج http://codefirstmembership.codeplex.com/

1
#4
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي طريقة الـ Code First تستخدم مع الـ Entity Framework فأعتقد لايمكن استخدامها مع الـ Membership لأنه هيكلية جداولها معرفة مسبقا ..

السلام عليكم (هناك شوقاً للحديث معك smile.gif ) .

فيما يخص Code First لا يهم أين تستخدمه , هو فى النهاية له هدف وفى النهاية لنا قاعدة بيانات ستخرج يسهل التعامل معها من خلال DbContext .فإستخدمه أين تشاء .

أما مع Membership أنت لست مقيداً بهيكلية الجداول على حد تعبيرك , لإنك يمكن أن تتعامل مع ملف XML للتخزين عند العمل مع Membership وهذا ما فعتله مسبقاً داخل MVC ,ونفس الشئ يمكن مع Web Forms .

TareqVB كتب:

السلام عليكم

في MVC لا يمكن استخدام ادوات ال login بالتالي Membership اصبح بلا فائدة .

الحل ابحث وخاصة في CodePlex

احدى النتائج http://codefirstmemb...p.codeplex.com/

السلام عليكم (مرحباً أخى طارق , كيف حالك smile.gif )

هذا الكلام غير صحيح , نعم لا توجد أدوات ولكن مازالت Membership لها دورها الفعال كما هو . فيمكنك العمل مع الـ Classes مثال Membership و Roles وProfile وغيرهم داخل MVC .

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

#5
D a r K T o u c h كتب:

السلام عليكم ورحمة الله وبركاتة

تحية طيبة أخواني...

عند أستخدامي للـ ASP.NET MVC تعلمت طريقة أستخدام الـ Entity Framework Code First لأنشاء قاعدة البيانات.

لكن لو أريد التعامل مع الـ ASP.NET Membership Database هل سأحتاج بأن أمثلها بإستخدام الـ code first ؟,أو أستخدمها عن طريق الـ API التي تتوفر لهذه القاعدة أو الجداول أذا ما تم جعلهم في قاعدة بيانات واحده؟

السلام عليكم (مرحباً D a r K T o u c h , كيف حالك , ما كل هذا النشاط smile.gif )

Code First ليست لإنشاء قاعدة البيانات فحسب ولكن لتيسير التعامل مع قاعدة البيانات أيضاً من إستعلام وحذف وسائر العمليات المراده (هذا التوضيح ليس لك , وإنما لمن يقرأ لتكون المعلومة كاملة smile.gif )

إستخدام ASP.Net Membership Database ليست فرضاً عليك , ولكن يمكن إستبدالها بغيرها , وأظنك نعرف كيف تقوم بعمل Custom Membership وإستخدام قاعدة بيانات آخرى أو حتى ملف نصى أو XML .

ولعلك تعرف أيضاً أن عملية الـ Custom تتطلب وجود class تقوم بعمل Implement لـ MembershipProvider وهنا إستخدمنا كلمة Implement لإنها Abstract Class .

فداخل هذة الـ class ستقوم بالتفاعل مع قاعدة البيانات , ولكن كيف ستتفاعل معها (التفاعل هنا إضافة حذف وسائر العمليات ) ....... فكيف هذا ؟

الإجابة تكون "بإستخدام طريقة تفاعل مع قواعد البيانات " .....مثال entity framework أو غيرها .

وعلى هذا فيمكننا إستخدام code First للتفاعل مع قواعد البيانات من إنشاء وغيره , ومن ثم إستخدام الـ DbContext داخل الـClass التى ستقوم بعمل Implement لـ MembershipProvider , وبعد ذلك لك الحرية أن تستخدمها مع جداول آخرى ليس لها علاقة بالـ Membership , وبهذا نكون ضربنا عصفورين بحجر واحد (و أنا لا أشجع الضرب smile.gif )

وفق الله الجميع ..... فما بكم من نعمة فمن الله .

1

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

#6
اقتباس
السلام عليكم ورحمه الله وبركاته

اخي طريقة الـ Code First تستخدم مع الـ Entity Framework فأعتقد لايمكن استخدامها مع الـ Membership لأنه هيكلية جداولها معرفة مسبقا ..

مممم, بعد قراءة رد أخي أحمد (أما مع Membership أنت لست مقيداً بهيكلية الجداول على حد تعبيرك , لإنك يمكن أن تتعامل مع ملف XML للتخزين عند العمل مع Membership وهذا ما فعتله مسبقاً داخل MVC ,ونفس الشئ يمكن مع Web Forms .)

لربما أستطيع التفكير في حل لكن سوف يكون متعب في الكتابة لان الحل هو عبارة عن أعادة كتابة هيكلة هذه الجداول لأستخدامها مع الـ code first بواسطة الـ entity framework لكن أتوقع ان هناك بديل أسرع و أضمن من حيث الأداءة.

اقتباس

السلام عليكم

في MVC لا يمكن استخدام ادوات ال login بالتالي Membership اصبح بلا فائدة .

الحل ابحث وخاصة في CodePlex

احدى النتائج http://codefirstmemb...p.codeplex.com/

السلام عليكم ورحمة الله وبركاتة...

أخي طارق, أنا لم أقصد أستخدام الأدوات الجاهزة لكن ما كان سؤالي هو انا عندما اتعامل مع قاعدة البيانات بأستخدام الـ code first لابد من تعريف classes لنسميها الوسيط أو بتسمية آخرى ما يمثل الحقول في قاعدة البيانات وبعدها أتعامل مع هذه الكلاسات لأتمام العمليات مثل الأضافة والتعديل والخ ولا ننسى بمساعدة كلاس يكون مورث من DbContext.

فما عنيته في سؤال ماذا لو أحببت أستخدام قاعدة البيانات التي توفرها لنا الـ asp.net لتخزين الأعضاء وانا اشير الى تلك القاعدة التي عندما تنشئ مشروع جديد من نوع mvc وتستطيع مباشرة من انشاء مستخدم جديد فسوف يتم أنشاء قاعدة بيانات لك. فتحيرت أخي لان كما تعلم أستطع وضع جداول هذه القاعدة في قاعدة بيانات خاصة بي بأستخدام aspnet_regsql.exe, فماذا لو وضعت هذه الجداول في قاعدة بيانات أنا مثلتها بأستخدام الـ code first فما هو الحل مع هذه الجداول ؟؟ هل أقوم بتمثل هذه الجداول أيضا على شكل كلاسات وبعدها أضيفها الى الـ DbContext لأتعامل معها.

و شكرا لك أخي طارق على الرابط وسوف أطلع عليه.

Ahmed Moosa كتب:

السلام عليكم (مرحباً D a r K T o u c h , كيف حالك , ما كل هذا النشاط smile.gif )

Code First ليست لإنشاء قاعدة البيانات فحسب ولكن لتيسير التعامل مع قاعدة البيانات أيضاً من إستعلام وحذف وسائر العمليات المراده (هذا التوضيح ليس لك , وإنما لمن يقرأ لتكون المعلومة كاملة smile.gif )

إستخدام ASP.Net Membership Database ليست فرضاً عليك , ولكن يمكن إستبدالها بغيرها , وأظنك نعرف كيف تقوم بعمل Custom Membership وإستخدام قاعدة بيانات آخرى أو حتى ملف نصى أو XML .

ولعلك تعرف أيضاً أن عملية الـ Custom تتطلب وجود class تقوم بعمل Implement لـ MembershipProvider وهنا إستخدمنا كلمة Implement لإنها Abstract Class .

فداخل هذة الـ class ستقوم بالتفاعل مع قاعدة البيانات , ولكن كيف ستتفاعل معها (التفاعل هنا إضافة حذف وسائر العمليات ) ....... فكيف هذا ؟

الإجابة تكون "بإستخدام طريقة تفاعل مع قواعد البيانات " .....مثال entity framework أو غيرها .

وعلى هذا فيمكننا إستخدام code First للتفاعل مع قواعد البيانات من إنشاء وغيره , ومن ثم إستخدام الـ DbContext داخل الـClass التى ستقوم بعمل Implement لـ MembershipProvider , وبعد ذلك لك الحرية أن تستخدمها مع جداول آخرى ليس لها علاقة بالـ Membership , وبهذا نكون ضربنا عصفورين بحجر واحد (و أنا لا أشجع الضرب smile.gif )

وفق الله الجميع ..... فما بكم من نعمة فمن الله .

السلام عليكم ورحمة الله وبركاتة

كيف حالك أخي أحمد..

في الحقيقة أنا كان لي سؤال سابق في المنتدى أستفسر عن طريقة التعامل مع custom membership بعد عده محاولات توصلت الى أمر (so far) بأن الكلاس الذي سوف تعمل له Implement يحتوي على دوال تتطلب منك حقول معينه. فـ لو كانت قاعدة البيانات خاصة بي لابد أن أنشئ جداول لتطابق الـ parameters في هذه الداول.

وبعد قراءة كلامك أحسست بأن هناك طريقة لتخطي ما ذكرتة سابقاً لكن لم أتوصل لها الى الأن.

لو ترجع قليلا للكلام الذي ذكرته للأخ طارق ستجد ما كنت أريد الأستفسار عنه بشكل أوسع, و ما أستطعت أستنتاجة من كلامك هو أني أقوم بعمل Implement لكلاس MembershipProvider لكي أستفيد من دوال على سبيل المثال أنشاء عضو و الخ.. وفي نفس الوقت قاعدة البيانات تكون ممثلة بأستخدام الـ code first (أقصد بأني لا ارتبط بالهيكلة التي تعطيني أياها Membership Database).. هل هذا صحيح ؟؟!

فـ اذا كان أستنتاجي صحيح, أذاً لماذا لا أمثل قاعدة البيانات التي أريدها بأستخدام الـ code first ومن ثم أضيف جداول الـ membership الى نفس هذه القاعدة بواسطة aspnet_regsql.exe و ثم أغير الأعدادات في الـ webconfig مثلا تغير الـ connectionString وبعدها أستفيد من كلاس الـ Membership كما تم أستخدامة في AccountController؟

أشكركم جميعها على الردود, وأتمنى من أخي أحمد اذا يوجد لديك مثال بسيط لما تستطيع وضعه

وشكراً

تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 24 أبريل 2012 في 13:42

My Latest

Hello Entity Framework Code First

--------------------

#7

السلام عليكم ورحمة الله وبركاتة

تحية طيبة لكم أخواني...

في الحقيقة أخي أحمد الى الأن لم أستطع من تخطي طريقة أستخدام قاعدة بيانات ذات هيكلة مختلفة مع عمل Implement لـكلاس الـ MembershipProvider. لربما أنا تفكري خطأء أو الى الأن لم أتوصل للمشكلةز

لان الى الأن ما أستطيع فعلة هو التعامل مع قاعدة بيانات ذات نفس الهيكلة التي تتوفر لنا...

و أيضاً من خلال تصفحي للأنترنت وجد أداة تأتي كأضافة على Visual Studio وهذه الأضافة تدعى Entity Framework Power Tools حيث أنا تستخدم لعدة أغراض لكن من كان يهمني هو أستطاعتي عمل قاعدة البيانات وبها الجداول التي تتوفر لنا (أقصد الهيكلة المعروفة) وبعدها أنشئ ملف DEMX و أسحب الجداول به, ومن ثم أستخدم هذه الأداة لأنشاء DbContext كاملة مع الـ Classes وأعتقد أنها ممتازة أذا ما أردت الأعتماد على مثل هذه الهيكلة وكلة ما أحتاجة هو نقل الأكواد التي يتم عملها لنا الى الـ DbContext الخاصة بمشروعنا و تغير الـ connection string الى هذه القاعدة وبعدها نستفيد من أستخدام الـكلاس Membership و في نفس الوقت سوف يكون أيضا متوفر لنا في نفس الـ DbContext الخاصة بنا وبالتالي نستطيع علم query بواسط الـ entity framework لهذه الجداول أيضا.( في الحقيقة أنا لم أجرب إلى الأن, ولكن هذا أستنتاج خطر في ذهني ولا أعلم ما صحتة تنفيذه)

و أيضا قمت بعمل شئ بسيط جداً وهو حل شخصي وهو بأنشاء كلاس يكون الغرض منه مشابهه نوعاً ما الى كلاس Membership. و تم تجربته والى حد هذه اللحظة يعمل لدي. لدى أحببت أن أضع الكود لرؤية أذا ما كانت هذه الفكرة يمكن الاعتماد عليها أو أهدرت وقتي و أنا أكتب :D

CustomMembershipMvc.rar

فكرتي هي أنشاء كلاس يخدمني في تطبيق العمليات على قاعدة البيانات والتي سوف أنشئها بأستخدام الـ code first

ملاحظة: لربما تكون هناك أخطاء برمجية فأذا أحببتهم تعديلها. أرجو أن يتم أخباري.

للأستخدام:

أرجوأ أولا التأكد من أن الـ connection string يلائم الخادم الذي عندك.

عند فتح المشروع توجع لرابط أنشاء عضو جديد وبعدها أنشئ عضو جديد ليتم أنشاء قاعدة البيانات.

وبعد ذالك سوف تستطيع تسجيل الدخول والخروج بكل سهولة.

وشكرا لكم ..

تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 26 أبريل 2012 في 10:30

My Latest

Hello Entity Framework Code First

--------------------

مواضيع مشابهة