У меня есть приложение службы WCF REST в .NET 4.7.2.Предположим, что в интерфейсе ServiceContract
есть метод:
[ServiceContract]
public interface MyService
{
[OperationContract]
[WebGet(UriTemplate = "DoSomething", ResponseFormat = WebMessageFormat.Json)]
ResponseDto DoSomething();
}
Предположим, что IIS, на котором запущена реализация этой службы, настроен на прием только HTTPS-соединений с клиентским сертификатом.Также предположим, что реализация DoSomething()
строго зависит от сертификата клиента TLS.
Есть ли способ получить этот сертификат клиента TLS внутри реализации службы?
public class MyServiceImpl : MyService
{
public ResponseDto DoSomething()
{
// Something like GetClientCertFromTlsSession()
// to get the X509Certificate2 instance?
}
}
Примечание. Конечно, я мог бы передать закодированный сертификат клиента в качестве параметра DoSomething
Вызов REST, но нет очевидного способа сопоставить тот, который передается вызову REST, и тот, который используется для установления рукопожатия TLS.