Этот вопрос, кажется, распространяется повсюду, но до сих пор я не смог найти однозначного ответа.
Мне поручено написать приложение для iPhone для моегоКомпания.У моей компании есть веб-сайт SSL-encrypted
с самозаверяющим сертификатом.Этот сайт используется очень часто, и мой работодатель хотел бы, чтобы сайт был легко доступен на iPhone.Функция моего приложения заключается в предоставлении метода хранения учетных данных, используемых для доступа к сайту, и когда пользователь открывает приложение, он автоматически отправляет сохраненные учетные данные на сайт и пропускает диалоговое окно входа в систему, чтобы сразу перейти на сайт.
Я настроил свое приложение на использование UIWebView
и загрузил запрос на сайт.Я установил обычные методы аутентификации, такие как:
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace {...}
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {...}
Когда мое приложение достигает той части кода, где я говорю UIWebView
загрузить NSURLRequest
, оно не сталкиваетсялюбой из моих методов аутентификации.Он переходит прямо к didFailLoadWithError
, и ошибка говорит мне, что я подключаюсь к сайту, который может выдавать себя за мой сайт только потому, что у него самозаверяющий сертификат.
Как мне обойти это?Я нашел несколько ответов, касающихся методов NSURLConnection
, но эти методы, кажется, не вызываются до того, как я обнаружил ошибку и вынужден прекратить загрузку страницы.Я также нашел несколько ответов, касающихся переопределения «недокументированных» методов, но когда я пытаюсь реализовать это решение, мое веб-представление никогда не достигает ни «didFailLoadWithError», ни «didFinishLoad» и никогда не отображает никакого содержимого.