هل من الممكن تجاوز السمة التي تم تطبيقها في وحدة تحكم مستوى معين الأسلوب ؟

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

سؤال

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

شكرا

جيمس

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

المحلول

ذلك يعتمد على أي نوع من "تجاوز" أنت تريد.لا يمكنك إزالة السمة التي على الطبقة ، ولكن يمكنك إضافة سمة إلى الأسلوب مرة أخرى من أجل جعل الأمور أكثر تقييدا.

تحديث في الرد على التعليقات. أولا جعل الخاصة بك AuthorizeAttribute هو خطير إلى حد ما.AuthorizeAttribute يحتوي على التعليمات البرمجية التي تتفاعل مع التخزين المؤقت سمات لضمان ذاكرة التخزين المؤقت لا يمكن أن يكون المحتوى المحمي غير أذن المستخدم.كحد أدنى ، يجب أن النوع الموجود AuthorizeAttribute بدلا من خلق شيئا الجديد كليا.عموما, ومع ذلك, انها فكرة أفضل استخدام القائمة AuthorizeAttribute و تتخصص الترخيص الخاص بك عن طريق خلق جديد/العثور على القائمة ASP.NET عضوية مقدم.

أنا لا أعتقد أنه سيكون التصميم الجيد أن يكون مرشح على العمل الذي "يتجاوز" مرشح على وحدة تحكم.ومع ذلك ، يمكنك تغيير تصميم مرشح على وحدة تحكم لا تتطلب تصريح عمل من اسم معين.يمكنك على سبيل المثال تجاوز AuthorizeAttribute.AuthorizeCore طريقة لاختبار عمل اسم في القائمة طريقة الاختبارات للحصول على اسم المستخدم و الأدوار.خذ حذرا جدا علما بالتعليقات الواردة في هذا الأسلوب حول موضوع السلامة.

نصائح أخرى

ولست متأكدا إذا كان هذا هو بالضبط نفس السؤال، لكنها قد تساعد ...

كيفية جعل ActionFilter على طريقة عمل الأسبقية على نفسه ActionFilter على وحدة تحكم

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