NSURLAuthenticationMethodServerTrust – ssl

У меня проблемы с пониманием NSURLAuthenticationMethodServerTrust. В моем приложении я должен использовать как http, так и https-соединения на основе сервера. Мои вопросы: если я получу вызов NSURLAuthenticationMethodServerTrust, это будет безопасное предположение, как https-соединение. Что именно я должен ответить на этот вызов.

Любая помощь будет оценена по достоинству. благодаря

Я не уверен, что получение NSURLAuthenticationMethodServerTrust всегда указывает на соединение https. Я не понимаю, почему или как простое http-соединение может вызвать NSURLAuthenticationMethodServerTrust проверки подлинности NSURLAuthenticationMethodServerTrust поэтому я бы предположил, что это https, но я точно не знаю. Но NSURLAuthenticationChallenge имеет NSURLProtectionSpace , которое, в свою очередь, обладает свойством NSURLProtectionSpace . Документация немного неспецифична, но я предполагаю, что это свойство указывает на безопасное соединение с сервером, которое в случае http / https означает, что это https.

Что касается ответа, есть полезный поток в списке рассылки macnetworkprog по этой теме: Question + Answer

Описание: NSURLAuthenticationMethodServerTrust не касается вас, клиента, который отвечает на вызов аутентификации сервера, но вместо этого дает вам возможность проверить, действительно ли вы должны доверять серверу. В этом случае protectionSpace задачи содержит объект / структуру serverTrust который содержит всю информацию, необходимую для проверки того, следует ли доверять этому серверу. Как правило, вы должны использовать функцию SecTrustEvaluate для проверки serverTrust и действовать в соответствии с результатом этой проверки. Вы можете найти более подробную информацию здесь: Правильно переопределить проверку правильности TLS

Если проверка определяет, что серверу следует доверять, вы создаете NSURLCredential с объектом serverTrust и передаете его блоку отправителя / завершения проверки подлинности.

Вы можете найти довольно обширный пример проекта Apple здесь: http://developer.apple.com/library/ios/#samplecode/AdvancedURLConnections/Introduction/Intro.html Это довольно старый (iOS 3/4, pre-Arc) и только имея дело со старым NSURLConnectionDelegate которому пришлось делегировать методы вместо одного (например, нового и NSURLSessionDelegate ). Но показанная там проверка и различные сценарии, которые вы можете реализовать, все еще применяются и должны легко переноситься в NSURLSession .

  • Разделяют ли хранилища файлов cookie UIWebView и NSURLConnection?
  • Методы NSURLConnectionDelegate, не вызываемые при использовании NSThread
  • NSURLConnectionDelegate. Как отменить вызов аутентификации?
  • Отправка chunked запросов HTTP 1.1 в Objective-C
  • Зачем использовать async HTTP-запрос по синхронизации HTTP в отдельном потоке?
  • Отправить запрос удаления http
  • Заголовок авторизации OAuth 2
  • Каковы альтернативы NSURLConnection для кодирования с короткими передачами
  • Декодирование частичного UTF-8 в NSString
  • Когда NSURLResponse не является ответом NSHTTPURLResponse?
  • Методы делегатов NSURLConnection не будут вызываться ... не могут понять и прочитать много сообщений
  • Давайте будем гением компьютера.