HTTP прокси аутентификация в iOS 4.3 - PullRequest
5 голосов
/ 30 мая 2011

Я занимаюсь программированием на ios, которое обращается к AppStore через StoreKit и к моему собственному серверу через https.Я пытаюсь получить доступ к обоим из-за корпоративного брандмауэра.У меня есть доступ к прокси-серверам, которым требуются «Без аутентификации», «Базовая аутентификация» и «NTLM-аутентификация».

Доступ через «Без аутентификации» не имеет проблем, но два других вызывают у меня головную боль.Я использую NSURLRequest для подключения к моему серверу, но возвращаюсь: [NSHTTPURLResponse statusCode]: 407 - требуется проверка подлинности прокси-сервера "Cache-Control" = "no-cache";«Длина содержимого» = 2428;"Content-Type" = "text / html";Истекает = 0;"Proxy-Authenticate" = "Basic realm = \" WebMarshal Proxy Server \ "";"Proxy-Connection" = "keep-alive";Сервер = "WebMarshal Proxy";Via = "1.1 NZ8KS49CH";"X-Webmarshal-Requestid" = "8854B349-B35E-48EF-A643-3C6C6FEC5F9C";}

Чтение Руководства по программированию URL предполагает, что класс NSURL '... прозрачно поддерживает как прокси-серверы, так и шлюзы SOCKS, используя системные настройки пользователя.'

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

Должен ли я вручную перезапустить запрос с заголовком «Proxy-Authorization»?Если да, то какой интерфейс используется для вызова или запроса учетных данных текущего пользователя?

Кстати, я не возлагаю больших надежд на запуск аутентификации NTLM, поскольку похоже, что она может не поддерживаться NSURLConnection, но Basic Auth должен быть.

Спасибо за любые предложения ...

1 Ответ

1 голос
/ 19 июля 2011

ДА, вы должны вручную обработать запрос аутентификации прокси.

Прочитайте раздел под названием «Проверка подлинности» , см. Здесь .

В двух словах, вы отвечаете на событие в вашем делегате nsurlconnection. Затем вы запрашиваете у пользователя прокси-имя и пароль, после чего вы затем отвечаете на запрос с данными аутентификации. (Вам не нужно повторно отправлять запрос как таковой, как это обрабатывает iOS).

...