سؤال

أرغب في تأمين إجراءات تحكم MVC باستخدام ...

[PrincipalPermission(SecurityAction.Demand, Role="Administrator")]

ومع ذلك، إذا لم يكن المستخدم موجودا في هذا الدور، فقد فشل طلب SecurityException "طلب إذن رئيسي." يتم إلقاؤها بواسطة الرمز.

يبدو أن هناك طريقة للتعامل مع هذا الخطأ، وحتى [مقبض] خطأ لن يصطاده.

ما أود هو وسيلة للقبض على استثناءات الأمان ثم إعادة توجيه المستخدم إلى صفحة تسجيل الدخول الخاصة بي (أو الطريق).

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

[MustBeAnAdministrator]

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

شكرا.

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

المحلول

في مشروع MVC لدينا نستخدم

<Authorize(Roles:="Administrators")>

وظيفة تعطى من قبل العضوية - التي مزودة بشروطنا. إذا لم يتم تسجيل دخول المستخدم، فسيتم إرساله إلى شاشة تسجيل الدخول.

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