كيفية تطبيق الأمان المستند إلى الدور باستخدام البيانات الديناميكي و Active Directory؟

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

سؤال

ما هو أفضل وسيلة لتنفيذ الأمن باستخدام الأدوار دليل النشطة على موقع الديناميكي للبيانات asp.net؟

وأود أن تقييد بعض الآراء (وصلات ذات الصلة) لبعض الأدوار. أي المستخدم أ لا يمكن إلا أن إجراءات عرض القائمة لجدول x و المستخدم B لا يمكن إلا أن إجراءات عرض القائمة لجدول ذ

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

المحلول

ولدي عدد من المقالات حول هذا على بلدي rel="nofollow بلوق هنا A <لأ href = "HTTP: / /csharpbits.notaclue.net/2008/05/dynamicdata-attribute-based-security.html "يختلط =" نوفولو noreferrer "> DynamicData السمة إذن استنادا الحل باستخدام الأدوار العضو وهنا DynamicData: قاعدة بيانات ضوابط يؤسس - الجزء 1 و I سيكون أيضا alook على تأمين عينة البيانات الديناميكي على كود بلاكس الذي يستخدم معالج الطريق .

نصائح أخرى

ولقد فعلت هذا في العديد من التطبيقات.

هل لديك مصادقة Windows تمكين للتطبيق الخاص بك.

تأكد بعض الكائنات التي يمكن تخزين أوراق اعتماد المستخدم ويكون هذا الكائن المخزنة في الدورة لretreival سريع. إذا لم يكن هناك يمكنك إعادة بنائه بسرعة. وعادة ما يكون تعيين كل الأدوار قليلا على سبيل المثال:


enum USER_ROLE : int
{
  Role1 = 1,
  Role2 = 2,
  Role3 = 4,
  Role4 = 8,
  etc
}

if (Context.User.IsInRole("Roll1Name")) YourUserObject.Roles += USER_ROLE.Role1;
if (Context.User.IsInRole("Roll2Name")) YourUserObject.Roles += USER_ROLE.Role2;
etc

وبعد ذلك في أي وقت تحتاج إلى التحكم لتأمينها، ونقله إلى وظيفة التي تأخذ HtmlControl والممتلكات على أساس دور المستخدم والمتطلبات الأمنية لتلك السيطرة.

وعلى سبيل المثال. منطقي SetControlSecurity (HtmlControl السيطرة، الباحث iUserRoles، الباحث iControlRoles، ACTION eAction)

وهكذا مثال للقيام لوحة قد تكون:

وSetControlSecurity (pnlUserInfo، YourUserObject.Roles، eRole.Role2، ACTION.Hide)؛

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

وبمقارنة دور في وظيفة من السهل:


bool bHasAccess = ((iUserRole & iControlRoles) > 0);
if (bHasAcess)
{
  // leave the control or make sure it is visible etc
}
else
{
  // take action to secure the control based on the action
}

وعلى أمل أن يساعد.

ويمكنك فقط استخدام ASP.NET الدليل النشط Memebrship ومقدمي دور لمصادقة \ تخويل المستخدمين إلى التطبيق. ثم يمكنك الاتصال Roles.IsUserInRole أي وقت مضى حيث كنت تريد التحقق للحصول على عضوية دور AD للتحقق من المستخدمين هم جزء من المجموعة ذات الصلة (ق) قبل تقديم المحتويات.

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