سؤال

لا أحد يعرف من بعض الموارد ذات الصلة إلى إعداد heirarchical حساب المستخدم النظم ؟ أنا حاليا الإعداد واحدة و أنا تكافح مع بعض أكثر تعقيدا المنطق (خصوصا مع تحديد الأذونات).كنت أتمنى أنني قد تكون قادرة على العثور على بعض الموارد إلى مساعدة لي على طول.

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

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

المحلول

دليل للكيك ممتازة وصف كيف قوائم التحكم بالوصول العمل.

http://book.cakephp.org/2.0/en/core-libraries/components/access-control-lists.html

نصائح أخرى

تمثل مجموعة الأذونات لمجموعة معينة مثل قناع بت.أو جي أقنعة بت معا سوف تعطيك الناتج إذن مجموعة.

تحديث @اليكس:

كتبت هذا الرد قبل 3 سنوات, لكن أعتقد أني أشير إلى ما يلي...

من السؤال

مجموعة متداخلة الهرمي.كل مجموعة يمكن السماح/رفض الوصول إلى القراءة, الكتابة, إضافة وحذف (إما صراحة عن تلك المجموعة ، أو ضمنا من قبل أحد الوالدين).كما لو أن لم تكن معقدة يكفي النظام يسمح أيضا للمستخدمين أن يكونوا أعضاء متعددة المجموعات.- هذا هو المكان الذي أنا عالقة.لقد حصلت على كل شيء ، أنا تكافح مع الفعلي المنطق لتحديد pemissions عن إعطاء المستخدم.

تعيين بت مطابقة مجموع إذن مجموعة من مجموعة (أو دور) في النظام:

على سبيل المثال 00 (استخدام اثنين بت يحفظه بسيطة هنا!)

الشيء الأول يمنح Permission A والثاني Permission B.

الآن أقول المجموعة يمنح الإذن التالية مجموعة: 01.

...ويقول المجموعة B يمنح الإذن التالية مجموعة: 10.

للحصول على الناتج إذن تعيين المستخدم في مجموعة التعسفي من المجموعات التي يمكن أن تؤدي منطقي OR على إذن مجموعة أقنعة بت:

Permission set for Group A   01
Permission set for Group B   10 OR 
                             ----
Resultant permission set     11 (i.e. both permission A and B are conferred)

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

ننظر في الأذونات في أندرو نظام الملفات.أنه يسمح للمستخدمين إنشاء وإدارة مجموعات خاصة بهم بينما انتقائي تعيين حقوق المسؤول و ACLs.قد تجد أن العديد من التفاصيل المزعجة هي بالفعل نجح في نموذج.

تحرير: هنا هو أفضل رابط AFS الوثائق:

http://www.cs.cmu.edu/~help/afs/index.html

هنا القسم على مجموعات:

http://www.cs.cmu.edu/~help/afs/afs_groups.html

لقد فعلت بالضبط هذا من قبل و لا تافهة التنفيذ.كنت تريد أن ننظر إلى SecurityPermission الدرجة.

[http://msdn.microsoft.com/en-us/library/system.security.permissions.securitypermission.aspx][1]

لقد فعلت هذا من قبل باستخدام XML (التي لست متأكدا أود أن تفعل مرة أخرى) وتخزين التي XML كما الإذن قائمة داخل SQL server في عمود XML من خلال CLR المخزنة proc.XML سيكون عنصر يسمى "إذن" ثم إذن سيكون في الواقع التعداد داخل المدونة.كل إذن هو تطبيق جديد من SecurityPermission فئة (الرابط أعلاه) للمستخدمين ربط المجموعات التي تم تعريفها في SQL server ثم باسم المستخدم إضافة/إزالة مجموعات, XML دوك سوف تحصل على تحديثها لتعكس المجموعات التي كانوا بعيدا.

بمجرد أن يقوم المستخدم بتسجيل الدخول للمستخدمين الاعتماد سيتم تحميلها في متجر التطبيقات (الدورة) ومن ثم يكون الوصول إليها وفقا لذلك.عند إذن في حاجة إلى أن تأخذ مكان XMl في متجر التطبيقات سوف يتم سحبها إلى أسفل تحميلها في SecurityPermission عبر "FromXML" الأسلوب.عند هذه النقطة أود أن استخدام الأساليب التالية لتحديد ما إذا كان المستخدم لديه الإذن:

  • الطلب
  • تتقاطع
  • الاتحاد
  • IsUnrestricted
  • IsSubSetOf

الخ ، إلخ, إلخ.

في تلك المرحلة بعد تنفيذ الطلب وكنت قادرا على تحديد ما إذا كان المتصل الوصول وفقا كيف تنفذ الأمن الروتينية في SecurityPermissions.

مرة أخرى, هذا هو ترك الكثير من التفاصيل ولكن هذا يجب أن تحصل على الذهاب في الطريق الصحيح.

نلقي نظرة على هذا الاسم الفضاء أيضا:[2]: http://msdn.microsoft.com/en-us/library/system.security.permissions.aspx "النظام.الأمن.أذونات"

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