C#多重属性调用序列

时间:2016-01-28 11:06:36

标签: c#

我想在控制器上应用多个属性。我需要按顺序调用它们,因为如果第一个属性执行,我初始化以下属性将使用的变量。

[AuthorizeLicense]
[MerchantLoggedIn]
[MerchantAuthorize]
public class MerchantController : BaseController
{
}

我的属性的定义

 public class AuthorizeLicense:AuthorizeAttribute
{
    protected override  bool AuthorizeCore(HttpContextBase httpContext)
    {

        if(somecondition is true){
     //initialize variables for next attribute use;
        }

    }

    protected override  void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {


    }


}

下一个属性

  public class MerchantLoggedIn:AuthorizeAttribute
{
    protected override  bool AuthorizeCore(HttpContextBase httpContext)
    {

          //use initialize variables from previous attribute 


    }

    protected override  void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {


    }


}

我面临的挑战是,因为我已经在类中定义了属性,所以不会在序列中调用属性;这是从上到下。 请帮忙......我做错了什么。

1 个答案:

答案 0 :(得分:1)

您可以使用订单参数

[AuthorizeLicense(Order = 1)]
[MerchantLoggedIn(Order = 2)]
public class ...

请参阅Execution Priority in custom Attributes in asp.net mvc