У меня есть приложение MVC 2 на основе подписки с установленной базовой службой членства .NET (под некоторыми пользовательскими компонентами для управления учетной записью / подпиской и т. Д.). Пользователи, чьи учетные записи прекратили работу или которые вручную заблокировали свои учетные записи, должны иметь возможность получить доступ к единственному представлению в системе, которое управляет состоянием их учетной записи. Контроллер, управляющий этим видом, защищен с помощью атрибута [Authorize].
Я хочу гарантировать, что никакие другие представления в системе не будут доступны, пока пользователь повторно не активирует свою учетную запись. В моем базовом контроллере (из которого происходят все мои защищенные контроллеры) я попытался изменить метод OnActionExecuting, чтобы перехватить действие, проверить приостановленную учетную запись и, если она приостановлена, перенаправить в одно представление, которое управляет состоянием учетной записи. Но это ставит меня в бесконечный цикл. Когда выполняется новое действие, OnActionExecuting вызывается снова, и цикл продолжается.
Я не хочу расширять атрибут [Authorize], но могу при необходимости.
Есть еще мысли о том, как это сделать на уровне контроллера?
РЕДАКТИРОВАТЬ: в базовом контроллере я управлял перенаправлением (которое впоследствии создало цикл перенаправления), изменяя свойство filterContext.Result, устанавливая для него результат RedirectToAction моего рассматриваемого представления. Я заметил каждый раз, когда происходит цикл, filterContext.Result == null. Возможно, мне следует проверить другую часть filterContext?