Я использую MVC5 на некоторых серверах IIS на Amazon EC2, за балансировкой балансировки нагрузки Amazon. Серверы IIS используют только протокол HTTP, а ELB преобразуется в HTTPS.Перенаправление MVC HTTPS, когда за балансиром нагрузки
Сервер IIS не знает, имеет ли пользователь доступ к HTTPS, поэтому у меня есть правило перезаписи, проверяющее заголовок «X-Forwarded-Proto» для перенаправления пользователя на HTTPS.
К сожалению, когда требуется вход в систему, MVC/IIS перенаправляет пользователя на страницу входа в HTTP.
Если я проверить свой веб-сайт в качестве инструмента, как http://www.redirect-checker.org/ я получаю эти типы результатов:
301 Moved Постоянно (мой URL правила перезаписи)
302 Найдено (требуется переадресация -> почему для HTTP?)
http://example.com/Account/Logon?ReturnUrl=%2F
301 Moved постоянно (опять мой URL правила перезаписи)
https://example.com/Account/Logon?ReturnUrl=%2F
200 OK
Я пропускаю что-то?
Могу ли я настроить логин-перенаправление для сохранения протокола, исключая одну из этих переадресаций?
Еще лучше, могу ли я как-то предшествовать правилу переадресации на вход и заставить его заставлять HTTPS, чтобы иметь только одну переадресацию?
Большое спасибо!
Приложение: Я проверил, что такие команды, как «RedirectToAction» отправить адрес как «/ index2», а не весь «http://example.com/Index2». Это нормально, поэтому он поддерживает протокол пользователя.
На самом деле я использую AspNet.Identity v2.2.1. Кажется, это так, но я не смог найти эквивалент requireSSL. – TNT
Возможно, стоит посмотреть на этот вопрос: http://stackoverflow.com/questions/30615017/asp-net-identity-login-redirect-enforce-protocol-https –