İmzalı bir Zaman damgasıyla sabun iletileri gönderecek üçüncü tarafa bir servis sağlamanız gerekir.WCF Hizmeti yalnızca İmzalı Zaman Damgası gerektirir
Hizmetimi bunu desteklemek için nasıl yapılandırabilirim?
Ben yakın Peşinde olduğumuz ancak WCF kullanıcı adı ve zaman damgası belirteçleri hem imzalanması konusunda ısrar Sabun mesajın formatına başardı ettik GÜNCELLEME, bağlanma değiştirmek için bir yolu var mı sadece zaman damgasını imzala? Zaman Damgası eleman imzalanacak MUTLAKA
- : Burada
ayrıntılı Güncelleme bizim gereksinimleri vardır.
- İmza için kullanılan sertifikanın CN adı, UsernameToken öğesindeki Kullanıcı adı verisiyle eşleşmesi ZORUNLU dur.
- İmza için kullanılan sertifika, BinarySecurityToken öğesinde gönderilmelidir.
- KeyInfo öğesi yalnızca BinarySecurityToken'a başvurmak için kullanılması gereken bir SecurityTokenReference öğesi içermemelidir.
- Bir kanonikleştirme algoritması belirtilmelidir.
- SignatureMethod belirtilmelidir ve SHA-1 veya SHA-2 algoritması OLMALIDIR.
- Müstakil İmzalar KULLANILMALIYOR.
herhangi bir öneriniz?
MEVCUT CONFİG
<bindings>
<wsHttpBinding>
<binding name="WSBC">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate" proxyCredentialType="None"></transport>
<message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
</bindings>
Müşteri bitiş noktası Bağlanma Müşteri
<client>
<endpoint address="https://localhost/WcfTestService/Service2.svc"
behaviorConfiguration="CCB" binding="wsHttpBinding"
bindingConfiguration="WSBC"
contract="ServiceReference2.IService2"
name="wsHttpBinding_IService2" />
</client>
Müşteri davranışı
<behaviors>
<endpointBehaviors>
<behavior name="MBB">
<clientCredentials>
<clientCertificate findValue="03 58 d3 bf 4b e7 67 2e 57 05 47 dc e6 3b 52 7f f8 66 d5 2a"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindByThumbprint" />
<serviceCertificate>
<defaultCertificate findValue="03 58 d3 bf 4b e7 67 2e 57 05 47 dc e6 3b 52 7f f8 66 d5 2a"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindByThumbprint" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="ICB">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate" proxyCredentialType="None"></transport>
<message clientCredentialType="UserName"
negotiateServiceCredential="false"
establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
</bindings>
Serice Endpoint BağlamaServis
<service name="WcfTestService.Service2" behaviorConfiguration="SCB">
<endpoint address="" binding="wsHttpBinding" contract="WcfTestService.IService2"
bindingConfiguration="ICB" name="MS" />
</service>
Servis Davranış
<behaviors>
<serviceBehaviors>
<behavior name="SCB">
<serviceCredentials>
<serviceCertificate findValue="4d a9 d8 f2 fb 4e 74 bd a7 36 d7 20 a8 51 e2 e6 ea 7d 30 08"
storeLocation="LocalMachine"
storeName="TrustedPeople"
x509FindType="FindByThumbprint" />
<userNameAuthentication
userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="WcfTestService.UsernameValidator, WcfTestService" />
<clientCertificate>
<authentication certificateValidationMode="None" revocationMode="NoCheck" />
</clientCertificate>
</serviceCredentials>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
Yalnızca Timestamp öğesinin imzalanması için yapılandırmanın çalışmasını sağladınız mı? Şu anda aynı şeyi elde etmeye çalışıyorum. – Edward