ترتيب التفاعيل المطبق على وحدة تحكم / طريقة

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

  •  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
{
...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top