При написании C / S-приложения на C # я проверяю сертификат сервера, к которому я подключаюсь.Поэтому я получаю обратный вызов, где я могу рассмотреть около X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors
, чтобы проверить сертификат.Я хочу позволить пользователю принять решение по этому поводу, поэтому подумал об использовании стандартного диалогового окна сертификатов Windows, которое выглядит следующим образом:
![Windows standard certificate decision dialog](https://i.stack.imgur.com/7cOnI.png)
Как этого добитьсяпредоставленные данные?
Я нашел частичный ответ для показа сертификата.Поэтому я могу использовать этот код:
X509Certificate certificate = ...
X509Certificate2 certenh = new X509Certificate2(certificate);
X509Certificate2UI.DisplayCertificate(certenh);
Но другое сообщение все еще отсутствует.Я мог бы воспроизвести его, но не для каждого языка, и я не знаю, где найти этот символ.В качестве условия для показа этого сообщения я мог бы использовать certenh.Verify();
.
Для значка фонового сообщения я могу использовать urlmon.dll в индексах 13, 14 и 15. Там вы найдете значкинапример:
![Certificate warning](https://i.stack.imgur.com/nXMOh.png)
Таким образом, я могу создать похожее сообщение, подобное фоновому.Единственная проблема, которая остается, состоит в том, что было бы лучше использовать стандартные языковые фразы для создания сообщения.Но я не нашел ни одной библиотеки, которая бы содержала специфичные для языка строки.
На данный момент я создаю сообщение самостоятельно, используя значение sslPolicyErrors
.