У меня есть следующий атрибут, чтобы убедиться, что страница удаленного сайта открывается в режиме https.Remote Require HTTPS MVC 5
public class RemoteRequireHttpsAttribute : RequireHttpsAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext == null)
{
throw new ArgumentException("Filter Context");
}
if (filterContext != null && filterContext.HttpContext != null)
{
if (filterContext.HttpContext.Request.IsLocal)
{
return;
}
else
{
string val = ConfigurationManager.AppSettings["RequireSSL"].Trim();
bool requireSsl = bool.Parse(val);
if (!requireSsl)
{
return;
}
}
}
base.OnAuthorization(filterContext);
}
}
Локальное развитие теперь работает нормально, так как я не хочу его открывать в режиме https.
Сайт Dev открывает страницу в режиме https - здесь нет проблем (единственный узел).
Где, как созданный мной (баланс нагрузки - 2 узла) сайт, который я сейчас настраиваю, дает мне следующую ошибку. Пожалуйста, обратите внимание, что Dev и прод сайты имеют те же параметры настройки по и web.config
страница не перенаправлять правильно
Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что будет никогда не заканчивается.
Эта проблема иногда может быть вызвана отключением или отказом принимать файлы cookie.
Dev сайт URL, как http://dev.datalab.something.org
Prod сайта URL, как http://datalab.something.org
А вот вызов
[RemoteRequireHttps]
public ActionResult Index(string returnUrl, string error)
Что я здесь отсутствует?
Обновление 1: Мой администратор подтвердил, что окончание SSL было настроено на уровне балансировки для мальчика. Я просмотрел сайт iis, и я не вижу привязки https. Я вижу только http привязки. Нужно ли ему также настраивать привязки https?
Обновление 2: @AlexeiLevenkov указал мне в правильном направлении, и this post имел код, который я использовал, и он работает. Перенесали код в отдельный ответ.
Не похоже, что вы перенаправляете пользователя обратно на соединение HTTPS, вы отказываетесь от доступа? –
У вас есть какой-то бесконечный цикл, где ваши страницы перенаправляются туда и обратно. Используйте инструменты отладки вашего браузера, чтобы определить, на каких страницах он перескакивает, а затем проверьте конфигурацию/код для этих страниц. – mason
RemoteRequireHttps наследуется от RequireHttpsAttribute. Это перенаправление. @mason У меня есть тот же код на обоих сайтах dev и prod. Сайт Dev отображает страницу в режиме https просто отлично. Нет проблем с перенаправлением. Для этого действия применяется только один атрибут. –