Hallo,
ich habe mit Visual Studio 2013 (Version 12.0.31101.00 Update 4 Microsoft .NET Framework Version 4.7.02053) eine Servicereferenz erstellt, um auf einen Non-Microsoft-Webservice zuzugreifen.
Dazu habe ich ein Zertifikat im Zertifikatsspeicher (Eigene Zertifikate) von Windows gespeichert und möchte der Anwendung nun mitteilen, dass die Authentifizierung über Zertifikat erfolgt und wo das Zertifikat zu finden ist.
Bei der Konfiguraton der app.config habe ich unter bindings nun 2 Möglichkeiten. Ich kann basicHttpBinding oder wsHttpBinding verwenden. Was davon ist richtig?
Mit freundlichen Grüßen
Peter
P.S.: die App.config sieht im Fall von basicHttpBinding anoniymisiert so aus:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="WEBSERV-Binding">
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
<binding name="WEBSERV-Binding1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://zieldienst.net/services" binding="basicHttpBinding"
bindingConfiguration="WEBSERV-Binding" contract="ServiceReference1.WEBSERVPortType"
behaviorConfiguration="endpointCredentialBehavior"
name="WEBSERV-ServicePort" />
</client>
<behaviors>
<endpointBehaviors>
<behavior name="endpointCredentialBehavior">
<clientCredentials>
<clientCertificate findValue="Organisation1 Root-CA"
storeLocation="CurrentUser"
storeName="My"
x509FindType="FindByIssuerName" />
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>