Tak, oczywiście - ale tylko wtedy, gdy używasz zabezpieczenia wiadomości (zamiast bezpieczeństwa transportu). Definiowanie konfiguracji wiązania tak:
<netTcpBinding>
<binding name="UserNameSecurity">
<security mode="Message">
<message clientCredentialType="UserName"/>
</security>
</binding>
</netTcpBinding>
a następnie odwoływać się, że wiązanie konfigurację punktów końcowych (na serwer i klienta):
<endpoint address="....."
binding="netTcpBinding"
bindingConfiguration="UserNameSecurity"
contract="IMyService" />
Marc
UPDATE:
Ach, tak, po stronie serwera potrzebny jest certyfikat do uwierzytelniania usługi do klienta, który ją wywołuje, a także do szyfrowania i podpisywania wiadomości. To tylko na serwerze - klienci nie muszą niczego instalować.
Konfiguracja:
<behaviors>
<serviceBehavior>
<behavior name="ServerInternet">
<serviceCredentials>
<serviceCertificate
findValue="MyServiceCertificate"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName" />
</serviceCredentials>
</behavior>
</serviceBehavior>
</behaviors>
<services>
<service name="MyServiceInternet"
behaviorConfiguration="ServerInternet">
....
</service>
</services>
Upewnij się, aby zainstalować certyfikat serwera, do folderu „lokalnego komputera” na serwerze, pod nazwą „” z zastrzeżeniem, że można określić w swojej konfiguracji.
Tak, to było to, co miałem pierwotnie. Ale otrzymuję wyjątek z prośbą o certyfikat usługi: "Certyfikat usługi nie jest dostarczony. Określ certyfikat usługi w ServiceCredentials." Wszelkie pomysły? –
Hmmm. Tak właśnie podejrzewałem. Dzięki za potwierdzenie. –
W tym podejściu istnieje jakakolwiek szkoda w korzystaniu z samopodpisanego certyfikatu w środowisku produkcyjnym? Jeśli służy tylko do szyfrowania wiadomości, ale nie do weryfikacji tożsamości. Kiedy nie używałbyś samopodpisanego certyfikatu do szyfrowania wiadomości? – Vitalik