【发布时间】:2015-09-20 04:41:30
【问题描述】:
我必须调用soap Web服务。
要调用此网络服务,我必须使用 SSL 证书并使用 X509Certificate。
所以,我已经构建了这段代码
//certificato 509v3
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);
但是,我有这个错误:
无法解决KeyInfo for VERIFICATION Signature : KeyInfo'SecurityKeyIdentifier\r\n(\r\n IsReadOnly = False,\r\n Count = 1,r\\n 子句[0]=X509IssuerSerialKeyIdentifierClause(Issuer='CN = testoca,C = US',标准 ='1342448880')\r\n)\r\n',可用令牌'SecurityTokenResolver\r\n(\r\n TokenCount = 1,\r\n TokenEntry [0] = ( AllowedReferenceStyle = External, token = System.IdentityModel.Tokens.X509SecurityToken , parameters = System.ServiceModel.Security.Tokens.X509SecurityTokenParameters : \r\nInclusionMode : Never \r\nReferenceStyle : Internal \r\nRequireDerivedKeys : False \r\nX509ReferenceStyle : 任意)\r\n)\r\n'。
现在,我的问题是: 是否可以禁用验证响应?
【问题讨论】:
标签: .net ssl soap-client