Я работаю над веб-приложением VB .NET.Проект ориентирован на .NET 4.0 и работает в IIS.
У нас есть интерфейс со сторонним приложением.Мы используем SAML для отображения их информации на нашем сайте.Они требуют, чтобы URL-адрес запроса был их базовым URL-адресом плюс строка запроса, которая всегда составляет около 7500–8000 символов.
Это прекрасно работает в Chrome, но в IE11 этот URL обрезается чуть более 4000 символов.Я вижу это в Fiddler, поэтому сторонние разработчики не несут ответственности за это усечение.
К сожалению, мы обязаны поддерживать IE11 и Chrome.Мы НЕ должны поддерживать какие-либо другие браузеры, включая более ранние версии IE.Ответ SAML добавляется к URL следующим образом:
Dim samlResponseStr As String = samlResponse.ToString()
Dim bytesToEncode() As Byte = Encoding.UTF8.GetBytes(samlResponseStr)
Dim encodedData As String = Convert.ToBase64String(bytesToEncode)
Dim strUrl As String = "https://training.com/SSO/NS/SAMLPatientDisplay.aspx?SAMLResponse=" & Server.UrlEncode(encodedData)
На этом этапе, конечно, strUrl идентичен независимо от того, какой браузер я использую.
Я добавилследуя моему web.config:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="100000" maxUrl="12288" />
</requestFiltering>
</security>
</system.webServer>
Независимо от того, что он обрезается в той же точке.
Есть ли способ заставить IE11 разрешить этому URL выходить какis?
Спасибо!
Отредактировано, чтобы добавить: Альтернативно, есть ли способ сократить URL в коде?Это одноразовые URL, которые недействительны после первоначального запроса, поэтому нет необходимости хранить их в течение длительного времени.
Повторно отредактировано: мне не нужно нигде отображать URL - он не нуженпоявляться в адресной строке или быть в закладки или что-нибудь.Похоже, это указывает на то, что в некоторых случаях в IE возможны более длинные URL: https://blogs.msdn.microsoft.com/ieinternals/2014/08/13/url-length-limits/ Но я не смог найти более подробную информацию по этому вопросу.