【问题标题】:How to disable validation response in Soap web service如何在 Soap Web 服务中禁用验证响应
【发布时间】: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


    【解决方案1】:

    您可以检查证书 OU 作为证书颁发机构安装您的系统。 详情here

    【讨论】:

      【解决方案2】:

      我不知道如何使用 .net httpclient 禁用验证,但是 如果您对 java 感到满意,您可以使用以下两个选项之一来实现:

      1. HttpComponents
      2. HttpsURLConnection

      值得一试,因为它们非常易于使用,即使是天真的 java 开发人员也可以使用它来调用任何 web 服务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-12
        相关资源
        最近更新 更多