SecurityVersion.WSSecurityJan2004 не поддерживает шифрование заголовка - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть трейд для вызова веб-службы, эта служба нуждается в sgin с использованием сертификации, но когда я вызываю метод GetData, я получаю это исключение

SecurityVersion.WSSecurityJan2004 не поддерживает шифрование заголовка.Заголовок с именем «enterpriseContext» и пространством имен «B2B_client» настроен для шифрования.Рекомендуется использовать SecurityVersion.WsSecurity11 и выше или использовать транспортную безопасность для шифрования полного сообщения.

код:

ServicePointManager.Expect100Continue = true;
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
               | SecurityProtocolType.Tls11
               | SecurityProtocolType.Tls12
               | SecurityProtocolType.Ssl3;
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(
            delegate
            {
                return true;
            });

            B2BServiceReference.B2BManagerClient client = new B2BServiceReference.B2BManagerClient();

            var objApplicationContext = new B2BServiceReference.EnterpriseContext_Type
            {
                applicationContext = new B2BServiceReference.ApplicationContext()
                {
                    languageCode = B2BServiceReference.ApplicationContextLanguageCode.en,
                    msgUID = "w81d4a669874",
                    version = B2BServiceReference.ApplicationContextVersion.Item10,
                }
            };
            var objGetData = new GetDataRequest();

            objGetData.accountNum = "0101000256001";
            string responseMsg;
            string numberOfReq;

            client.ClientCredentials.ServiceCertificate.DefaultCertificate = new X509Certificate2(@"Testingkeys.pfx", "12345678", X509KeyStorageFlags.UserKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

            client.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"Testingkeys.pfx", "12345678", X509KeyStorageFlags.UserKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

            var response = client.GetData(ref objApplicationContext, objGetData, out responseMsg, out numberOfReq, out objInquireAccountBalanceResponseAccountBalance, out objBusinessException);

веб-конфигурация:

<bindings>
            <customBinding>
                <binding name="B2BManagerBinding">
                  <security authenticationMode="MutualCertificate"
    messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" />
                  <textMessageEncoding messageVersion="Soap11" />
                  <httpsTransport />
                </binding>
            </customBinding>
        </bindings>
        <client>
          <endpoint address="https://xxxx" binding="customBinding"
              bindingConfiguration="B2BManagerBinding" contract="B2BServiceReference.B2BManager"
              name="B2BManager" behaviorConfiguration="CustomBehavior">
            <identity>
              <dns value="xxx"/>
            </identity>
          </endpoint>
        </client>
        <behaviors>
        <endpointBehaviors>
          <behavior name="CustomBehavior">
            <!--<clientCredentials>
              <clientCertificate findValue="xxx" x509FindType="FindBySubjectName"
                storeLocation="LocalMachine" storeName="My" />

            </clientCredentials>-->
            <clientCredentials>
              <clientCertificate findValue="xxx" x509FindType="FindBySubjectName"
                storeLocation="LocalMachine" storeName="My" />
              <serviceCertificate>
                <defaultCertificate findValue="xxx" x509FindType="FindBySubjectName"
                storeLocation="LocalMachine" storeName="My" />
                <authentication certificateValidationMode="None" />
              </serviceCertificate>
            </clientCredentials>
          </behavior>
        </endpointBehaviors>
      </behaviors>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...