سؤال

وأنا أحاول لتأمين خدمة WCF باستخدام حسابات النوافذ. يجب تشغيل الخدمة على العديد من الأنظمة مع لغات مختلفة. كيف يمكنني تحديد PrincipalPermission التي لديها لغة أسماء دور مستقل؟

ولقد وجدت الحلول قبيحة مثل هذا واحد.

[PrincipalPermission(SecurityAction.Demand, Role = "Builtin\\Administrators")] // English
[PrincipalPermission(SecurityAction.Demand, Role = "Vordefiniert\\Administratoren")] // German
public string HelloWorld()
{
    return "Hello";
}

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

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

المحلول

واحدة محاولة أكثر: إلقاء نظرة على HTTP : //msdn.microsoft.com/en-us/library/system.security.principal.windowsbuiltinrole.aspx .... والذهاب إلى العينة. هناك يمكنك استخدام أعضاء تعداد مدمج للحصول على اسم المجموعة كتابتها بشكل صحيح (عبر API) ... ثم يجب أن تكون لغة محايدة.

وHTH، توماس

نصائح أخرى

هل يمكن لفة السمة إذن الخاصة التي تتولى الترجمة:

 [Serializable, AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true, Inherited = false), ComVisible(true)] 
 public sealed class AdministratorPrincipalPermissionAttribute : CodeAccessSecurityAttribute 
 {  
    public AdministratorPrincipalPermissionAttribute(SecurityAction action) : base(action)
    { }

    public override IPermission CreatePermission()
    {
       var identifier = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
       var role = identifier.Translate(typeof(NTAccount)).Value;
       return new PrincipalPermission(null, role);
    }
 }

يرجى ملاحظة أن هذا يتطلب بعض الجهد الإضافي نشر (GAC، caspol الخ.).

يمكنك استخدام الإصدار الضروري وحيوي تحويل لغة محايد شكل (مثل SID) إلى النموذج مترجمة (قد يكون من خلال SecurityIdentifier.Translate).

وترد

ومعرفات الأمان المعروفة في KB 243330.

وهمم، وأود أن لا تستخدم اسم مجموعة مباشرة في قانون بلدي (الثابت ترميز). محاولة مجردة لدور مثل "HelloWorldAdmin" ويكون لها دور في تكوين app.config. يجب أن يتم تعيين هذا واحد لمجموعة من المستخدمين. هذا من شأنه أن يسمح الخاص بك المستخدمين / مدراء لتحديد مجموعة وخريطة لدور (على سبيل المثال، في حالة أن مدراء تطبيق ليست لك مدراء AD). إلقاء نظرة على http://msdn.microsoft.com/en-us/ مكتبة / ms998314.aspx . HTH.

هل أنت متأكد تماما ذلك، فإن "BUILTIN \ المسؤولين" لا تعمل على نظام اللغة الألمانية؟ أود أن يتصور حتى ذلك الحين، وينبغي أن تكون هذه الأسماء مجموعة أساسية صالح. نعم، في أدوات المشرف، وسوف تظهر "Vordefiniert \ ADministratoren" - ولكن سأكون مندهشا إذا كانت السمة PrincipalPermission سيكون تعتمد على اللغة

.

ومارك

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