Невозможно подключиться к службе WCF с сертификатом безопасности в ядре .net - PullRequest
0 голосов
/ 01 марта 2019

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

Среда: .Net framework 4.5

<binding name="wsHttpBinding_ITokenService"
                 closeTimeout="00:01:00"
                 openTimeout="00:01:00"
                 receiveTimeout="00:01:00"
                 sendTimeout="00:01:00"
                 bypassProxyOnLocal="false"
                 hostNameComparisonMode="StrongWildcard"
                 maxBufferPoolSize="524288"
                 maxReceivedMessageSize="65536"
                 messageEncoding="Text"
                 textEncoding="utf-8"
                 useDefaultWebProxy="true"
                 allowCookies="false">
          <readerQuotas maxDepth="32"
                        maxStringContentLength="8192"
                        maxArrayLength="16384"
                        maxBytesPerRead="4096"
                        maxNameTableCharCount="16384" />
          <security mode="Message">
            <message clientCredentialType="Certificate"
                     negotiateServiceCredential="false"
                     establishSecurityContext="false" />

          </security>
        </binding>

Поскольку я разрабатываюпод ядром .net я попытался преобразовать эту конфигурацию в код C #, но, к сожалению, не могу связаться с веб-сервисом.Кто-нибудь может мне помочь с этой конфигурацией?

Среда: .Net Core 2.1

 services.AddTransient<Transverse.TokenService.ITokenService>(provider =>
            {
                var binding = new BasicHttpBinding();

                binding.TextEncoding = System.Text.Encoding.UTF8;
                binding.MaxReceivedMessageSize = 65536;
                binding.UseDefaultWebProxy = true;
                binding.BypassProxyOnLocal = false;
                binding.CloseTimeout = new TimeSpan(00, 01, 00);
                binding.SendTimeout = new TimeSpan(00, 01, 00);
                binding.OpenTimeout = new TimeSpan(00, 01, 00);
                binding.ReceiveTimeout = new TimeSpan(00, 01, 00);

                binding.Security.Mode = BasicHttpSecurityMode.Message;

                var httpTransport = new HttpTransportSecurity();
                httpTransport.ClientCredentialType = HttpClientCredentialType.Certificate
                httpTransport.ProxyCredentialType = HttpProxyCredentialType.None;

                binding.Security.Transport = httpTransport;

                var endpoint = new System.ServiceModel.EndpointAddress(Configuration["Services:TokenService"]);

                var client = new Transverse.TokenService.TokenServiceClient(binding, endpoint);
                //client.Endpoint.Address = new System.ServiceModel.EndpointAddress(Configuration["Services:TokenService"]);
                return client;
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...