Поддерживает ли Microsoft.Web.Redis.RedisSessionStateProvider соединение tls 1.2 с хранилищем redis? - PullRequest
2 голосов
/ 21 января 2020

Я использую пакет nuget Microsoft.Web.Redis.RedisSessionStateProvider в качестве хранилища сеансов. У нас есть экземпляр azure redis, который в настоящее время работает в tls 1.0. Я добавил приведенную ниже настройку в методе Application_Start (), чтобы включить tls 1.2.

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

Я увеличил версию redis для tls до 1.2. Но есть ошибка подключения. Есть ли что-то еще, что я должен добавить в web.config. Мой текущий web.config ниже.

    <sessionState timeout="20" mode="Custom" customProvider="MySessionStateStore">
  <providers>
    <!--<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionTimeoutInMilliseconds="5000" operationTimeoutInMilliseconds="1000" retrytimeoutInMilliseconds="5000" server="127.0.0.1" ssl="false" throwOnError="true" />-->
    <add name="MySessionStateStore" port="6380" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="" accessKey="" ssl="true" connectionTimeoutInMilliseconds="5000" operationTimeoutInMilliseconds="1000" retrytimeoutInMilliseconds="5000" throwOnError="true" />
  </providers>
</sessionState>

1 Ответ

3 голосов
/ 31 января 2020

Единственное, что вам нужно сделать, это добавить sslprotocols = tls12 в строку подключения Redis.

Пример:

<sessionState mode="Custom" timeout="120" customProvider="RedisSessionProvider">
  <providers>
    <add type = "Microsoft.Web.Redis.RedisSessionStateProvider"
         name = "RedisSessionProvider"
         connectionString = "MyRedisConnection"/>
  </providers>
</sessionState>

Примечание. Убедитесь, что у вас установлен Microsoft.Web.Redis.RedisSessionStateProvider версии 3.0.2 или более поздней. Некоторые ссылки: https://docs.microsoft.com/en-us/azure/azure-cache-for-redis/cache-remove-tls-10-11

https://github.com/Azure/aspnet-redis-providers/wiki/Configuration

...