Я исследовал способ изменения сертификатов IssuedTokenAuthentication в WCF после того, как служба начала прослушивать свое соединение.Я знаю, что могу изменить сертификаты, просто зайдя в web.config, а затем сбросив службу, чтобы она загружала новые настройки, но мне нужно сделать это на лету без простоев.
Я знаю, чтоЯ мог получить текущий экземпляр ServiceHost, выполнив:
ServiceHost host = (ServiceHost)OperationContext.Current.Host;
, а затем я мог получить доступ к его сертификатам службы через:
host.Credentials.IssuedTokenAuthentication.KnownCertificates
, но это не сработало, когда служба запущена,так как список возвращаемых сертификатов становится ReadOnly.
Другой путь, который я видел, - это идти по описательному маршруту, но, похоже, он доступен только для чтения:
host.Description.Behaviors.Find<ServiceCredentials>().IssuedTokenAuthentication.KnownCertificates;
То же самоеСписок сертификатов можно найти в следующем месте web.config:
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceCredentials>
<serviceCertificate/>
Я застрял на этом этапе, я не думаю, что на самом деле есть способ получить доступ к списку этих сертификатов, доступному для записи.Это правда, кто-нибудь может подтвердить, или есть способ?
Спасибо!