как добавить шифрование в мыльный заголовок, используя профиль токена имени пользователя в wcf - PullRequest
1 голос
/ 27 октября 2010

У меня есть рабочий профиль токена USername, работающий с использованием WCF, я пытаюсь добавить поддержку шифрования при вызове клиента, веб-служба ожидает зашифрованный заголовок мыла. Я установил сертификат в локальном магазине с помощью MMC. В моем коде C # ниже у меня есть код, который загружает сертификат и назначает его для прокси. Я не уверен, какие другие настройки мне нужны в моих пользовательских привязках или чего мне не хватает в моем коде c #. Какие-либо предложения?

app.config:

<customBinding>
<binding name="cbinding">
  <security authenticationMode="UserNameOverTransport" includeTimestamp="false">
    <secureConversationBootstrap  />

  </security>

  <textMessageEncoding  messageVersion="Soap11" />
  <httpsTransport />
</binding>

<endpoint address="https://localhost:8443/p6ws/services/ProjectService?wsdl"
  binding="customBinding" bindingConfiguration="cbinding" contract="P6.WCF.Project.ProjectPortType"
  name="ProjectServiceEndPointCfg">
 </endpoint>

Мой код C #:

        ProjectPortTypeClient proxy = new ProjectPortTypeClient("ProjectServiceCertificateEndPointCfgUT", endpointAddress);
        proxy.ClientCredentials.UserName.UserName = UserName;
        proxy.ClientCredentials.UserName.Password= Password;

        proxy.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.PeerOrChainTrust;
        proxy.ClientCredentials.ServiceCertificate.Authentication.TrustedStoreLocation = System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine;

        // Set the certificate
        proxy.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindByThumbprint, "13 d3 6e f1 26 5e 5f 74 be f2 bb f5 57 a4 47 cf e7 1a c6 0a");
        proxy.ClientCredentials.ServiceCertificate.SetDefaultCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindByThumbprint, "13 d3 6e f1 26 5e 5f 74 be f2 bb f5 57 a4 47 cf e7 1a c6 0a");

        ReadProjects readProjects = new ReadProjects();

1 Ответ

1 голос
/ 27 октября 2010

Хотя запросы на мыло могут быть зашифрованы , это не замена HTTPS. HTTPS проще в реализации и обеспечивает лучшую безопасность, чем то, что может предложить SOAP.

...