كيف يمكنني قائمة أدوار المستخدم طلب في خدمة WCF؟

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

  •  22-08-2019
  •  | 
  •  

سؤال

وبدأ لتوه الحصول على السيطرة على الأمن WCF. كيف يمكنني إدراج الأدوار المستخدم في هذه الخدمة؟

ومنها مثلا.

// Could use declarative security here, i.e. using PrincipalPermission attribute
public string MyService()
{
    // Would like some code that does something like:
    foreach( Role role in CurrentUser.Roles )
    {
    }
}

والشكر

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

المحلول

عند التعامل مع مجموعات Windows يمكنك استخدام هذا الرمز:

foreach (IdentityReference idRef in WindowsIdentity.GetCurrent().Groups)
{
    Console.WriteLine(idRef.Translate(typeof(NTAccount)).Value);
}

نصائح أخرى

والبنية التحتية الأمان المستند إلى الدور في. NET (أي IPrincipal) لا يسمح جلب جميع الأدوار المستخدم. يمكنك الاستفسار فقط ما إذا كان المستخدم في دور معين (عن طريق IPrincipal.IsInRole ( "اسم الدور")).

ولكن هناك حلول إذا كنت لا تمانع في أن تكون مرتبطة إلى الإعداد التوثيق / ترخيص معين. على سبيل المثال، أشار ملصق آخر على كيفية الحصول على أدوار المستخدم عند استخدام مصادقة Windows.

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