Я предполагаю, что подписывая, вы имеете в виду, что вы подписываете сообщение с помощью сертификата, установленного на стороне клиента.
Сделать это относительно легко в WCF. Предполагая, что вы используете wsHttpBinding в элементе безопасности , вы должны установить режим на SecurityMode.Message . Вы также должны установить clientCredentialType элемента сообщения в MessageCredentialType.Certificate .
Затем вам потребуется настроить поведение конечной точки и настроить элемент clientCertificate (который является дочерним элементом элемента clientCredentials ), чтобы указать, где хранится сертификат клиента.
Даже если вы не используете wsHttpBinding, конфигурация практически одинакова для большинства других привязок, когда вы хотите использовать сертификат клиента для обеспечения безопасности на уровне сообщений.
Если вы выполняете вызов по HTTPS, обратите внимание, что вам нужно установить атрибут режима в элементе безопасности равным Mode.TransportWithMessageCredential.