Перенаправлять пользователей с заблокированными учетными записями без создания цикла перенаправления - PullRequest
0 голосов
/ 02 декабря 2010

У меня есть приложение MVC 2 на основе подписки с установленной базовой службой членства .NET (под некоторыми пользовательскими компонентами для управления учетной записью / подпиской и т. Д.). Пользователи, чьи учетные записи прекратили работу или которые вручную заблокировали свои учетные записи, должны иметь возможность получить доступ к единственному представлению в системе, которое управляет состоянием их учетной записи. Контроллер, управляющий этим видом, защищен с помощью атрибута [Authorize].

Я хочу гарантировать, что никакие другие представления в системе не будут доступны, пока пользователь повторно не активирует свою учетную запись. В моем базовом контроллере (из которого происходят все мои защищенные контроллеры) я попытался изменить метод OnActionExecuting, чтобы перехватить действие, проверить приостановленную учетную запись и, если она приостановлена, перенаправить в одно представление, которое управляет состоянием учетной записи. Но это ставит меня в бесконечный цикл. Когда выполняется новое действие, OnActionExecuting вызывается снова, и цикл продолжается.

Я не хочу расширять атрибут [Authorize], но могу при необходимости.

Есть еще мысли о том, как это сделать на уровне контроллера?

РЕДАКТИРОВАТЬ: в базовом контроллере я управлял перенаправлением (которое впоследствии создало цикл перенаправления), изменяя свойство filterContext.Result, устанавливая для него результат RedirectToAction моего рассматриваемого представления. Я заметил каждый раз, когда происходит цикл, filterContext.Result == null. Возможно, мне следует проверить другую часть filterContext?

1 Ответ

0 голосов
/ 02 декабря 2010

Хорошо, вот мое решение, если оно кому-нибудь еще поможет.Должен быть более изящный способ сделать это, и я очень рад, если у кого-то есть идея получше.

...