Request.Url.GetLeftPart(UriPartial.Authority) возвращает http на https-сайте

Мы используем Request.Url.GetLeftPart(UriPartial.Authority), чтобы получить доменную часть сайта. Это послужило нашим требованием на http. Мы недавно сменили сайт на https (около 3 дней назад), но это все еще возвращается с http://.. Urls были изменены на https и отображались в адресной строке браузера.

Любая идея, почему это происходит?

Ответ 1

Следующий пример отлично работает и возвращает строку с "https":

var uri = new Uri("https://www.google.com/?q=102njgn24gk24ng2k");
var authority = uri.GetLeftPart(UriPartial.Authority);
// authority => "https://www.google.com"

У вас либо есть проблема с классом HttpContext прямо здесь, либо все ваши запросы по-прежнему используют http:

  • Вы можете проверить свойства запросов HttpContext.Current.Request.IsSecureConnection. Если это правда, и метод GetLeftPart по-прежнему возвращает вам http, я думаю, вы не найдете здесь замену.
  • Если все ваши запросы действительно идут с http, вы можете обеспечить безопасное соединение в IIS.

Вы также должны проверить входящий URL-адрес и зарегистрировать его где-нибудь в целях отладки.

Ответ 2

Если ваш запрос поступает из ARR с помощью SSL-разгрузки, Request.Url.GetLeftPart(UriPartial.Authority) просто получить http