Не разрешено - все еще ищет решение.
Я делаю передачу вызова WCF в токене SAML:
Использование токена SAML с веб-службой (wsdl)
private static string serviceEndpoint = "https service endpoint";
public static void CallProviderService(SecurityToken token)
{
var binding = new WS2007FederationHttpBinding(WSFederationHttpSecurityMode.TransportWithMessageCredential);
binding.Security.Message.EstablishSecurityContext = false;
binding.Security.Message.IssuedKeyType = SecurityKeyType.BearerKey;
var channelFactory = new ChannelFactory<ISomeProviderService>(binding, new EndpointAddress(new Uri(serviceEndpoint)));
string thumb = "mycertthumbprint";
channelFactory.Credentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindByThumbprint, thumb);
channelFactory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.PeerOrChainTrust;
channelFactory.ConfigureChannelFactory();
channelFactory.Credentials.SupportInteractive = false;
var elements = service.Endpoint.Binding.CreateBindingElements();
elements.Find<SecurityBindingElement>().EnableUnsecuredResponse = true;
service.Endpoint.Binding = new CustomBinding(elements);
var channel = channelFactory.CreateChannelWithIssuedToken<ISomeProviderService>(token);
try
{
var response = channel.MyServiceMethod(somedataobject);
}
catch (Exception ex)
{
//log message
}
}
Когда у меня был скрипач, выполнявший вызов, он нашел и вернул мне данные.
С отключением fiddler я получаю ошибку 400 Bad Request в моем блоке catch.
Я сомневаюсь, что сертификат не передается, когда Fiddler выключен.
Любая идея?
Примечание. У меня есть .wsdl, который я использовал для создания прокси-классов с помощью Visual Studio → Добавить ссылку на службы.
Вопрос: Как проверить, установлен ли мой установленный сертификат при выполнении этого вызова службы https?
Обновлено: Вот Req/Response от Fiddler:
Запрос туннеля:
Ответ туннеля:
Сведения об исключении протокола:
От клиента после запроса сертификата сервера:
Обновление 12/8/2014: Я думаю, что у меня есть один раз, используя привязку в этой ссылке: привязка WCF, которая будет поддерживать HTTPS, подписанный сертификат и подписанный токен имени пользователя
Я буду обновлять больше, поскольку я не знаю, что это делает.