На моем сайте есть несколько controller
, которые разрешены только авторизованным пользователям.Кроме того, есть некоторые из тех контроллеров, которые требуют аутентификации, которые также должны быть ограничены в зависимости от времени года.
Чтобы справиться с этим, я создал TimeRangeFilter
ActionFilter
/ ResourceFilter
.
Вот как это выглядит:
public class TimeRangeFilter : Attribute, IActionFilter, IOrderedFilter
{
public string AllowedMonths { get; set; } // like |3|4|5|
public string RedirectUrl { get; set; }
...... // OnActionExecuting....
}
Затем на моих Controller
class
я реализую так:
[TimeRangeFilter(AllowedMonths = "|3|4|", RedirectUrl = "/feature/welcome", Order = 1)]
[Authorize]
[IsNotNefarious]
public class HubController : BaseController
{...}
Нодаже с IOrderedFilter
interface
на filter
сначала выполняется AuthorizationFilter
, ТО мой TimeRangeFilter
.
Для этой страницы приветствия я не хочу требовать от пользователяВойдите, чтобы увидеть это.Но я не хочу менять URL-адрес, который попадает на мою страницу Hub, исходя из разрешенных месяцев.
Как назначить приоритеты для моего ActionFilter
/ ResourceFilter
для выполнения и короткого замыкания,до AuthorizationFilter
казни?