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

Membership Provider

بدأه cplusplus في 7 أبريل 2008 · 13 رد · 1,450 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أنا سويت

Membership Schema in SQL Server

طيب الحين أنا عندي عضويات مختلفه لكل عضوية صلاحيات ومعلومات تختلف عن الأخرى

لنفترض أن لدينا مدراء و معلمين و طلاب

كل منهم سوف يسجل بمعلومات تختلف عن الآخرين كذلك الصلاحيات

كيف يمكنني التعامل مع ذلك من ناحية التسجيل ومن ناحية الصلاحيات

#2

اخي الكريم

التسجيل واحد للكل ولكن الصلاحيات بحسب الشاشات

فمثلا الطلاب ينتمون الى مجموعة x وهذه المجموعة لها صلاحيات على شاشات معينة يتم تحديدها من قبلك

وكذلك المعلمون ينتمون الى مجموعة Y وهذه المجموعة لها صلاحيات على شاشات معينة يتم تحديدها من قبلك وهكذا

كما يمكنك ايضا التعديل على الجداول باضافة حقول خاصة بك اذا اردت ذلك

تحياتي

#3

كما قال الاخ هتان ,الافضل ان تكون الصلاحيات مربوطة بالمجموعات.فلو افترضنا ان لديك صفحة admin.aspx وتود ان تكون هذه الصفحة متاحة فقط للمجموعة administrators ,فكل ما عليك فعله هو اضافة الاسطر التالية الى الweb.config :

<location path="admin.aspx">
		<system.web>
			<authorization>
				<allow roles="administrators"/>
				<deny users="*"/>
			</authorization>
		</system.web>
	</location>

السطر الذي يبدأ ب allow يمنح الصلاحيات للمجموعة administrators على الصفحة admin.aspx بينما السطر الذي بعده فيقوم بمنع او سحب الصلاحيات عن باقي المستخدمين.

يمكنك ايضا ربط الصلاحيات مع المستخدمين بدل المجموعات ,فلو افترضنا اننا نريد اعطاء الصلاحيات فقط للمستخدمين ahmed و khalid ,الكود يتغير كالتالي:

<location path="admin.aspx">
		<system.web>
			<authorization>
				<allow users="ahmed,khalid"/>
				<deny users="*"/>
			</authorization>
		</system.web>
	</location>

تم تعديل هذه المشاركة بواسطة madani في 7 أبريل 2008 في 20:12

#4

الله يجزاكم خير

بس أنا أبغى البيانات تختلف مثلا

المعلم أحتاج معلومات خاصه فيه كمعلم

والطالب أحتاج معلومات خاصه فيه كطالب

هل الأعضاء لازم كلهم يكونون بجدول واحد

لأن عندي 6 عضويات مختلفه وكل واحد له بيانات وصلاحيات خاصه فيه ويرتبط بجداول في الداتا بيس تختلف عن غيره

#5

اخي الكريم سي بلس بلس

لا مشكلة بتاتا في انشاء جدول خاص للمعلم واخر للطالب اذا كانت البيانات مختلفة بشرط تخزين البيانات المختلفة فقط في الجداول الخاصة بها لكن جدول المستخدمين يجب ان يبقى لان اي مستخدم للنظام هو مستخدم بغض النظر عن وظيفته وبامكانك اضافة حقل جديد مثل UserTypeID يوضع في جدول المستخدمين يحدد نوع المستخدم هل هو طالب ام معلم او ...او

طبعا هذا الاختيار سيكون ايضا في شاشة الادخال مثلا ستطلب من المستخدمين اختيار هل هو طالب او معلم او ... او

مثال بسيط

المعلم له تاريخ التعيين

بينما الطالب له تاريخ دخول المدرسة

المعلم له راتب

بينما الطالب ليس له راتب وهكذا

هذه البيانات فقط هي التي يتم تخزينها في جداول خاصة بهم لانها مختلفة عن بعض

لكن البيانات الاساسية واحده مثل

الكل له اسم

الكل له اسم مستخدم

الكل له كلمة مرور

الكل له عنوان

الكل له رقم هوية

وهكذا

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

ارجو ان تكون وصلت الفكرة

تحياتي

#6

بالنسبه لعملية إضافة حقول جديده ( مثل نوع العضوية والعنوان وغيره من الأمور المشتركه) هل أضيفها على جدول aspnet_User ???

أحتاج توضيح أكثر لعملية customizing membership schma

وإذا فيه روابط ممكن تساعدني

رفع الله قدرك وأثابك

تم تعديل هذه المشاركة بواسطة cplusplus في 14 أبريل 2008 في 05:41

#7

ان كنت تريد الأسهل يمكنك استخدام profile Provider وتستطيع تخزين كل ما تريد فيها ,,, يمكنك استخدام خاصية group للتنظيم البيانات

<profile enabled="true" >
			<properties>
				<add name="propertie1" type="string"/>
				<add name="propertie2" type="string"/>
				<add name="propertie3" type="string"/>
				<group name="Student">
					<add name="StudentID" type="System.Int32" />
					<add name="StudentName" type="System.String"/>
					<add name="Student" type="System.String" />
				</group>
				<group name="Staff">
					<add name="StaffPropertie1" type="System.Int32" />
					<add name="StaffPropertie2" type="System.String"/>
					<add name="StaffPropertie3" type="System.String" />
				</group>
			</properties>
		</profile>

يمكنك الوصل لهذه المعلومات بطريقة مثل

TextBox1.Text=Profile.Student.StudentName;

هناك اشياء يجب التفكير فيها :

من يقوم بتعيين ارقام الطلاب ومن يحدد هذا مدرس او طالب او موظف ,,, لأن هذه المعلومات غالبا لا يترك الخيار فيها للطالب او المدرس اثناء عملية التسجيل ولا تتاح له فرصة تعديلها بنفسه ,, اما بقية المعلومات فستتركها متاحة في اثناء عملية التسجيل واثناء عملية تعديل البروفايل في الصفحة الخاصة بذلك

طبعا من السهل ان تعرف من قام بالدخول وأي role يحمل فتقوم باستدعاء الجروب الخاص بهذه ال role للعرض او التعديل

The World Must Be Crazy

#8

جزاكم الله خيرا وزادكم علما وبارك فيكم

لكن سؤالي هل استخدام الprofileسيمكنني من الربط بجداول أخرى واسترجاع البيانات

مثلا إذا كان معلم فسوف يرتبط بجدول عن المواد التي يدرسها وهكذا

حينما أريد أن أسترجع جميع معلومات عن المواد التي يدرسها المعلم أحمد هل يمكنني ذلك بهذه الطريقة

#9

الموضوع فيه غموض شوية .. اذا كان لديك مدرس (user) فله userID وله role معين ,,, في هذا المستوى يمكنك ان تربط مع اي جدول باستخدام userid لأن الخصائص الأخرى قابلة للتغيير والتكرار في أي وقت

ان كنت تريد الإستعلام بدلالة قيمة في البروفايل فهذا الامر يحتاج لفة طويلة

على العموم هذا اللنك قد يفيدك http://www.asp.net/downloads/sandbox/table...ovider-samples/

The World Must Be Crazy

#10

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

اخي الكريم الجدول aspnet_members يحتوي على اسماء الاعضاء في نظامك و Profile يحتوي على معلومات اضافية عن الاعضاء مثل الرقم الجامعي والكلية ... الخ .

واذا اردت انشاء جدول جديد للمواد التي يدرسها المعلم او للمواد التي يدرسها الطالب فما عليك الا وضع foreign key في هذه الجداول بحيث يكون المفتاح الاساسي من الجدول aspnet_members للحقل userid والذي هو من النوع uniqueidentifier

#11

يعطيكم العافية

أنا بجربها إن شاالله

لكن تساؤلي كان

أن عندي بالـــaspnet_members معلومات الأعضاء الي راح تتخزن عندي لما أسوي

createuser(username,password,Email)

المعلومات الإضافية مثل: (رقم التلفون و الجنسية والمؤهلات وغيرها....................) راح تتخزن بالــProfile

المشكلة الأعضاء عندي أنواع مثال: مدراء - معلمين - طلاب وكل منهم لهم معلومات تختلف عن الثاني مثل المعلم له راتب والطالب لا وكل واحد منهم يرتبط بجداول خاصه فيه

مثل المعلم يرتبط بجول x

الطالب لجدول y

المدراء بجدول z

وكيف أميز كل نوع عن الثاني عشان أقدر أسترجع من الداتابيس

أنا جربت أضيف حقل في جدول aspnet_membership عباره عن userType

بس ماعرفت كيف ممكن أوصله لما أخزن بــ

insert statment

وهل من الممكن أسوي جدول مدراء وجدول طلاب وجدول معلمين ويكون فيها fk عباره عن

الــ userId؟

بحيث أخزن فيهم معلوماتهم الإضافية

تم تعديل هذه المشاركة بواسطة cplusplus في 15 أبريل 2008 في 17:54

#12

I need help

#13

السلام عليكم

بالنسبة لهذه الجداول لا انصحك باضافة اي حقول عليها وانما عليك انشاء جداول اخرى خاصة بمشروعك على سبيل المثال انشاء جدول خاص ببيانات المشترك (نوع المشترك والكلية الراتب ...الخ)

بعد دخول المشترك الى النظام يوجد الحدث loggedin في اداة Login فبامكانك عمل استعلام على هذه البيانات وتحديد الشاشات على اساسها

وانصحك اخي الكريم الرجوع الى الكتب فمشروعك كبير قليلا وبالتالي بحاجة الى امور كثيرة ولا يمكن تغطيتها في منتدى او عن طريق سؤال وجواب

وتقبل تحياتي

#14

جزاك الله خير أخي طارق هذا ماقمت بعمله

المشكله أنه لم يتوفر لي سوى كتاي واحد لم أجد في تفصيل فيما أريد فمرجعي asp.net

لكن لم تتضح لي بعض الأمور فيه دروسه

أنا قمت بعمل هذه الطريقة لكل عضويه جدول خاص وربطت بالــUserId

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