Как я могу обновить протокол безопасности до TLS 1.2 во время выполнения - PullRequest
0 голосов
/ 24 января 2019

Невозможно обновить протокол безопасности с помощью приведенного ниже кода, вызываемого в Application_Start файла Global.asax (возможно, потому что связь CAS прерывается задолго до достижения этой строки кода)

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

У меня есть приложение .net, разработанное в рамках 4.0, которое, как ожидается, будет использовать протокол безопасности раньше, чем TLS 1.2.Я получил аутентификацию CAS, не удается перенаправить на мое приложение из-за проблемы TLS.Чтобы решить эту проблему, я сделал целевое изменение структуры в web.config, как показано ниже.

<httpRuntime requestValidationMode="2.0" targetFramework="4.6" />

Но приведенное выше решение приводит к другим проблемам.Поэтому сейчас я пытаюсь решить проблему CAS с помощью обновления протокола безопасности до 1.2.Пожалуйста, помогите мне, как я могу справиться с моей ситуацией.

1 Ответ

0 голосов
/ 24 января 2019

Если в вашей системе установлен .NET 4.5 или более поздней версии, код, который вы разместили: ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; должен работать без изменения платформы .NET, на которую нацелено ваше приложение.

Если вы не можете обновить .NET Framework в своей системе, вам необходимо установить для ключей реестра SchUseStrongCrypto и SystemDefaultTlsVersions значение 1.

От: https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls

Для .NET Framework 3.5 - 4.5.2 и не WCF

Мы рекомендуем вам обновить приложение до .NET Framework 4.7 или более поздних версий. Если вы не можете выполнить обновление, выполните следующие действия. В какой-то момент в будущем ваше приложение может перестать работать до тех пор, пока вы не обновитесь до .NET Framework 4.7 или более поздних версий.

Установите для ключей реестра SchUseStrongCrypto и SystemDefaultTlsVersions значение 1. См. Настройка безопасности через реестр Windows. .NET Framework версии 3.5 поддерживает флаг SchUseStrongCrypto только при передаче явного значения TLS.

...