c# Веб-сервис WCF и как определить версию клиента TLS - PullRequest
1 голос
/ 24 февраля 2020

У меня есть веб-служба WCF. Net 4.6 (файл .sv c в веб-проекте), и я хотел бы получить версию TLS подключающегося клиента, чтобы я мог регистрировать ее на стороне сервера.

С помощью этой информации я могу создать отчет для информирования клиентов, затронутых, прежде чем мы отключим более ранние версии TLS.

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

В конце концов, я украсил свой сервис WCF

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

, а затем собрал информацию, используя;

  var CRYPT_PROTOCOL = Convert.ToString(HttpContext.Current.Request.ServerVariables["CRYPT_PROTOCOL"]);
  var CRYPT_CIPHER_ALG_ID = Convert.ToString(HttpContext.Current.Request.ServerVariables["CRYPT_CIPHER_ALG_ID"]);
  var CRYPT_HASH_ALG_ID = Convert.ToString(HttpContext.Current.Request.ServerVariables["CRYPT_HASH_ALG_ID"]);
  var CRYPT_KEYEXCHANGE_ALG_ID = Convert.ToString(HttpContext.Current.Request.ServerVariables["CRYPT_KEYEXCHANGE_ALG_ID"]);

CRYPT_PROTOCOL может быть 400 для TLS1.2, 40 для TLS 1.0 , 10 для SSLv3

Я не проверял ответ Авраама (но спасибо)

0 голосов
/ 26 февраля 2020

Мы можем видеть, какая версия TLS в настоящее время используется в WCF с помощью следующего оператора.

Console.WriteLine (System. Net .ServicePointManager.SecurityProtocol.ToString ());

Возможные значения: Enum.
https://docs.microsoft.com/en-us/dotnet/api/system.net.securityprotocoltype?view=netframework-4.8
Фактически большая часть значения - SystemDefault. Если клиент не указал версию для использования. Это связано с тем, что для связи TLS требуется поддержка DotNet framework SDK и версия ОС. Сервер и клиент будут использовать последнюю версию (securer) после согласования. Получить практическую версию невозможно, поскольку она зависит от среды на стороне сервера и на стороне клиента.
Для получения подробной информации см. Ссылку ниже.
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls?view=netframework-4.8
Приведенная ниже ссылка может быть полезна для вас, когда мы хотим отключить версию TLS на стороне сервера.
Служба WCF TLS 1.2 Enforcement
Не стесняйтесь сообщать мне, если есть что-то Я могу помочь.

...