Có, tất nhiên - nhưng chỉ khi bạn sử dụng Bảo mật thư (thay vì bảo mật truyền tải). Xác định cấu hình ràng buộc của bạn như vậy:
<netTcpBinding>
<binding name="UserNameSecurity">
<security mode="Message">
<message clientCredentialType="UserName"/>
</security>
</binding>
</netTcpBinding>
và sau đó tham khảo mà ràng buộc cấu hình trong thiết bị đầu cuối của bạn (trên máy chủ và máy khách):
<endpoint address="....."
binding="netTcpBinding"
bindingConfiguration="UserNameSecurity"
contract="IMyService" />
Marc
UPDATE:
Ah, vâng, ở phía máy chủ, bạn sẽ cần một chứng chỉ để tự động dịch vụ cho khách hàng đang gọi nó, và nó cũng được sử dụng để mã hóa + ký các tin nhắn. Đó là trên máy chủ chỉ - khách hàng không cần phải cài đặt bất cứ điều gì.
Cấu hình:
<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>
Hãy chắc chắn để cài đặt chứng chỉ của máy chủ vào "máy địa phương" thư mục trên máy chủ của bạn, theo "tên chủ đề" mà bạn chỉ định trong cấu hình của bạn.
Nguồn
2009-08-03 15:31:29
Vì vậy, đó là những gì tôi có ban đầu. Nhưng, tôi nhận được một ngoại lệ yêu cầu chứng chỉ dịch vụ: "Chứng chỉ dịch vụ không được cung cấp. Chỉ định chứng chỉ dịch vụ trong ServiceCredentials." Bất kỳ ý tưởng nào? –
Hmmm. Đó là những gì tôi nghi ngờ. Cảm ơn bạn đã xác nhận. –
Trong phương pháp này là có bất kỳ tác hại của việc sử dụng một cert tự ký trong môi trường sản xuất? Nếu nó chỉ được sử dụng để mã hóa tin nhắn chứ không phải để xác minh danh tính. Khi nào bạn không sử dụng tự ký-cert để mã hóa tin nhắn? – Vitalik