2014-11-04 1 views
2

Im пытается отправить Apple Push уведомление с действительным p12 и жетона следующим образом:APNs C# исключение не может прочитать данные из транспортного соединения существующее соединение было принудительно закрыто удаленным узлом

void connect() 
     { 
      client = new TcpClient(); 

      //Notify we are connecting 
      var eoc = this.OnConnecting; 
      if (eoc != null) 
       eoc(this.appleSettings.Host, this.appleSettings.Port); 

      try 
      { 
       client.Connect(this.appleSettings.Host, this.appleSettings.Port); 
      } 
      catch (Exception ex) 
      { 
       throw new ConnectionFailureException("Connection to Host Failed", ex); 
      } 

      if (appleSettings.SkipSsl) 
      { 
       networkStream = client.GetStream(); 
      } 
      else 
      { 
       stream = new SslStream(client.GetStream(), false, 
        new RemoteCertificateValidationCallback((sender, cert, chain, sslPolicyErrors) => { return true; }), 
        new LocalCertificateSelectionCallback((sender, targetHost, localCerts, remoteCert, acceptableIssuers) => 
        { 
         return certificate; 
        })); 

       try 
       { 
        stream.AuthenticateAsClient(this.appleSettings.Host, this.certificates, System.Security.Authentication.SslProtocols.Tls, false); 
        //stream.AuthenticateAsClient(this.appleSettings.Host); 
       } 
       catch (System.Security.Authentication.AuthenticationException ex) 
       { 
        throw new ConnectionFailureException("SSL Stream Failed to Authenticate as Client", ex); 
       } 

       if (!stream.IsMutuallyAuthenticated) 
        throw new ConnectionFailureException("SSL Stream Failed to Authenticate", null); 

       if (!stream.CanWrite) 
        throw new ConnectionFailureException("SSL Stream is not Writable", null); 

       networkStream = stream; 
      } 

      //Start reading from the stream asynchronously 
      Reader(); 
     } 

    } 

, когда я изменил Код строки: System.Security.Authentication.SslProtocols.Tls для System.Security.Authentication.SslProtocols.Ssl3 я получаю «Ошибка аутентификации, потому что удаленная сторона закрыла транспортный поток»

Как я могу отправить APNS? Как я могу отправить apns ???

ответ

1

SSL3 был выброшен Apple (среди других) в течение последнего месяца (октябрь 2014 года) из-за серьезного недостатка безопасности; известный как POODLE (Padding Oracle On Downgraded Legacy Encryption).

+0

Хорошо, а как насчет ошибки с использованием Tls? –

 Смежные вопросы

  • Нет связанных вопросов^_^