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