Фильтр разрывается при глобальном добавлении - PullRequest
1 голос
/ 05 июля 2011

Я использую Фильтр Люка Сэмпсона в asp.net MVC3 с именем [ExitHttpsIfNotRequired], который можно применить к контроллеру или действию и автоматически перенаправляет на HTTP, если [RequireHttps] также не применяется.

Это прекрасно работает, когда я применяю его к одному контроллеру.Однако, поскольку я буду применять это к 99% своих контроллеров, я решил добавить его в мои глобальные фильтры:

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();

    GlobalFilters.Filters.Add(new ExitHttpsIfNotRequiredAttribute());

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}

Теперь он продолжает работать для страниц http: //, но как только язайти на что-нибудь по https: // я получаю ошибку 500. Я пытался отладить бесчисленное количество раз, но не могу воспроизвести проблему локально - у кого-нибудь есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 06 июля 2011

Решено! Мой основной контроллер ssl вызывал другой не-ssl контроллер (используя Html.Action) в макете - случай, для которого фильтр не настроен для:

Я исправил это, добавив следующее в фильтр [ExitHttpsIfNotRequired] Люка:

// Abort if it's a child controller
if (filterContext.IsChildAction) return;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...