Web Farm Framework и MVC 3: как требовать Https для метода действий?
Я знаю, что вы можете сделать это:
#if !DEBUG
[RequireHttps] //apply to this action only
#endif
Что если вы используете Web Farm Framework, где сервер "Контроллер" получает внешний запрос SSL 443, расшифровывает его, а затем перенаправляет его на основной / дополнительный сервер по протоколу http 80 (без ssl?)
В этой среде я попробовал атрибут [RequireHttps], но он ответил: "Страница неправильно перенаправляет" в Firefox. Firefox обнаружил, что сервер перенаправляет запрос на этот адрес способом, который никогда не будет завершен. Он признает, что это не SSL, но поскольку он удаляет SSL, MVC никогда не увидит атрибуты SSL.
Как бы вы переписали определенные методы действий для использования https в MVC 3 в веб-ферме? Как вы можете сделать это с [RequireHttps]
или вам нужно выбрать все URL-адреса на вашем веб-сайте, для которых требуется ssl и "URL Rewrite"?
РЕДАКТИРОВАТЬ:
Я изменил контроллер, чтобы определить трафик порта 443 и перенаправить его на https в веб-ферме. Я думал, что смогу обойтись только загрузкой сертификатов SSL на контроллере, но их нужно загружать также на основной и дополнительный (или только).
1 ответ
В вашем методе действий вы можете проверить безопасное соединение:
if(Request.IsSecureConnection())
{
// Secure connection logic here
}