Asp.net-Mvc

如何授權一組控制器而不在每個控制器上放置註釋?

  • March 22, 2017

我有一組控制器,每個控制器都用於每種授權類型。例如,A 類授權將有一組控制器,每個控制器都需要 A 類授權。有沒有辦法在[Authorize(Role="Class A")]某個地方放置一個屬性,該屬性將應用於每個控制器,而不必用相同的屬性裝飾每個控制器?

您可以初始化從基本控制器派生的那些控制器。即將您的屬性放在控制器基類上,並確保其中的每個控制器都派生自基類。

[Authorize(Role="Class A")]
public class CustomBaseController : Controller{}

public class AController: CustomBaseController{}

public class BController: CustomBaseController{}

是的,有一種方法,使所有這些A-class控制器派生自一個基本控制器並將其放置在AuthorizeAttribute

[Authorize(Role="Class A")]
public class AController : Controller 
{
   ...
} 

public class AFirstController : AController // Gets it's parent attribute
{
   ...
} 

public class ASecondController : AController // Gets it's parent attribute
{
   ...
} 

引用自:https://stackoverflow.com/questions/9830906