كيفية التعامل مع الإذن عند استخدام NHibernate في NET.

StackOverflow https://stackoverflow.com/questions/303835

  •  08-07-2019
  •  | 
  •  

سؤال

وأنا باستخدام نمط مستودع للاستعلام قاعدة البيانات الخاصة بنا باستخدام NHibernate. انه يجعل من السهل حقا أن تفعل أشياء مثل:

والجمهور T GetById (الباحث معرف) {...}

ولكن هذا لا يساعد كثيرا عندما يقوم شخص ما تبدأ التلويث مع querystrings لرؤية الأشياء لا يسمح لهم.

لتفاقم ذلك، بعض الكائنات هم من الأطفال متداخلة بشدة من الكائن الأصل الذي ينبغي أن يقوم إذن على.

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

وهكذا ... كيف لنا أن نفعل إذن (في النموذج أو مستودع)؟

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

المحلول

هل يمكن تنفيذ خطة ديكور - أفترض أنك تستخدم DP / اللجنة الاولمبية الدولية للحاويات لحقن IRepositories بك

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

وأنت تريد ثم الإعداد كنت اللجنة الاولمبية الدولية لاستخدام ISecureRepository ملفوفة حول IRepository ...

ويبدو في غاية البساطة ...

نصائح أخرى

وهذا قد يكون التنفيذ الجيد لاحتياجاتك: HTTP: // شبكة الاتصالات العالمية .codeproject.com / KB / على شبكة الإنترنت الأمن / objectlevelsecurity.aspx ، انها نموذج قائم على ACL.

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