Как передать несколько параметров с помощью побитовой операции ИЛИ в моем пользовательском атрибуте FeatureAuthorize
, таким же образом AttributeUsage
поддерживает AttributeTarget
в качестве метода или класса.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
Ниже приведен пример, который яЕсли вы хотите достичь, любая доступная функция должна быть доступна для отправки или получения денег.
[FeatureAuthorize(Feature = EnumFeature.SendMoney | EnumFeature.ReceiveMoney)]
public ActionResult SendOrReceiveMoney(int? id, EnumBankAccountType? type)
{
// My code
}
Тело атрибута FeatureAuthorize похоже на
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class FeatureAuthorizeAttribute : AuthorizeAttribute
{
public EnumFeature Feature { get; set; }
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!IsFeatureAllowed(Feature)) // Verification in database.
{
// Redirection to not authorize page.
}
}
}
Заранее спасибо.