ترتيب التفاعيل المطبق على وحدة تحكم / طريقة
-
12-09-2019 - |
سؤال
إذا كان لدي تطبيق مخصص ل IAuthorizationFilter، فكل منهما يتم تطبيقه على طريقة في وحدة تحكم، كيف يمكننا تحديد المرشح الذي يتم تنفيذه أولا؟
على سبيل المثال
إعلان:
public class MyAuthenticationFilter : FilterAttribute, IAuthorizationFilter
public class MyAuthorisationFilter : FilterAttribute, IAuthorizationFilter
مطبق:
[MyAuthorisationFilter(AllowedRoles = "Admin")]
[MyAuthenticationFilter()]
public class UsersController : Controller
{
...
}
من خلال التجارب، يبدو أن التأهيل ينفذ المرء أولا فقط لأنه يتم وضعه أقرب إلى إعلان تحكم ... هل يمكننا تحديد النظام أم أنه سلوك افتراضي؟
شكرا!
المحلول
استخدم خاصية الطلب:
[MyAuthenticationFilter(Order=1)]
[MyAuthorisationFilter(AllowedRoles = "Admin",Order=2)]
public class UsersController : Controller
{
...
}
لا تنتمي إلى StackOverflow