I have to call the soap web service.
To call this web service, I have to use an SSL certificate and use X509Certificate.
So, I created this code
string pathCertificato = @"C:\Users\michele.castriotta\Desktop\Certificati\keystore_healthnetbr.pfx";
X509Certificate2 certificatoLocale = new X509Certificate2(File.ReadAllBytes(pathCertificato), "changeit");
AsymmetricAlgorithm chiavePrivta = certificatoLocale.PrivateKey;
PublicKey chiavePubblica = certificatoLocale.PublicKey;
PianoAssistenzialeResidenzialeClient ws_Client = new PianoAssistenzialeResidenzialeClient("PianoAssistenzialeResidenzialePort", "https://edottotest.sanita.regione.rsr.rupar.puglia.it/nsisr/PianoAssistenzialeResidenzialeService");
ws_Client.ClientCredentials.ClientCertificate.Certificate=certificatoLocale;
ws_Client.ClientCredentials.ServiceCertificate.DefaultCertificate = certificatoLocale;
EndpointIdentity identity = EndpointIdentity.CreateDnsIdentity("HEALTHNETBR");
EndpointAddress address = new EndpointAddress(new Uri("https://edottotest.sanita.regione.rsr.rupar.puglia.it/nsisr/PianoAssistenzialeResidenzialeService"), identity);
ws_Client.Endpoint.Address = address;
ws_Client.ClientCredentials.UserName.UserName = "HEALTT";
ws_Client.ClientCredentials.UserName.Password = "ceit";
PianoAssistenzialeResidenzialeService.attributiAutorizzativi attributi = new PianoAssistenzialeResidenzialeService.attributiAutorizzativi();
attributi.identificativoServizio="getElencoPAIDomiciliare";
attributi.identificativoUtente="HEAR";
attributi.ruoloIstituzionale="RI282";
PianoAssistenzialeResidenzialeService.getElencoPAIDomiciliare request = new PianoAssistenzialeResidenzialeService.getElencoPAIDomiciliare();
elencoPAIDomiciliareRequest criteriRicerca = new elencoPAIDomiciliareRequest();
criteriRicerca.codiceNazionale = "160";
criteriRicerca.distretto = "3";
criteriRicerca.tipologiaAssistenzaAutorizzata = 0;
criteriRicerca.dataInizioRiferimento = "01/12/2000";
criteriRicerca.dataFineRiferimento = "01/07/2015";
request.criteriRicerca = criteriRicerca;
getElencoPAIDomiciliareResponse response = ws_Client.getElencoPAIDomiciliare(attributi, request);
But I have this error:
KeyInfo : KeyInfo 'SecurityKeyIdentifier\r\n (\ r\n IsReadOnly = False,\r\n Count = 1, r\\n [0] = X509IssuerSerialKeyIdentifierClause ( =' CN = testoca, C = US ', standard =' 1342448880 ')\r\n)\r\n', AVAILABLE token 'SecurityTokenResolver\r\n (\ r\n TokenCount = 1,\r\n TokenEntry [0] = (AllowedReferenceStyle = , = System.IdentityModel.Tokens.X509SecurityToken, parameters = System.ServiceModel.Security.Tokens.X509SecurityTokenParameters:\r\nInclusionMode: Never\r\nReferenceStyle: \r\nRequireDerivedKeys: False\r\nX509ReferenceStyle: any)\r\n)\r\n '.
, :
.