Вот код:
using ADPTest.com.adp.hrbws;
using System.Security.Cryptography.X509Certificates;
using Microsoft.Web.Services3.Security;
using Microsoft.Web.Services3.Security.Tokens;
using Microsoft.Web.Services3.Security.Cryptography;
namespace ADPTest
{
class Program
{
static void Main(string[] args)
{
// Create the web service proxy.
HrbService proxy = new HrbService();
// Add the Username token.
UsernameToken usernameToken = new UsernameToken("user@ABC"," ");
proxy.RequestSoapContext.Security.Tokens.Add(usernameToken);
// Add the certificate for mutual SSL.
X509Certificate2 mutualCert = new X509Certificate2 "I:\\auth.pem", " ");
proxy.ClientCertificates.Add(mutualCert);
// Sign the message using the signing certificate.
X509Certificate2 signCert = new X509Certificate2("I:\\soap.pem", " ");
X509SecurityToken signatureToken = new X509SecurityToken(signCert);
MessageSignature signature = new MessageSignature(signatureToken);
proxy.RequestSoapContext.Security.Elements.Add(signature);
Я думаю, что мой общий сертификат, в общем случае :versCert, SOAP - мой личный сертификат, а в действительности я не уверен. Я взял код из своего рода поваренной книги (веб-службы) ... Веб-служба сообщает, что они не смотрят пароли.
Сообщение об ошибке:
"Объект содержит только открытую половину пары ключей. Также должен быть предоставлен закрытый ключ."