Как выполнить вызов NTLM на iPhone - PullRequest
10 голосов
/ 10 марта 2009

Я пытаюсь получить доступ к некоторым веб-службам в приложении для iPhone.

Если я GET перехожу на страницу .asmx, я аутентифицируюсь и получаю WSDL, как и ожидалось.

Однако, если я POST перехожу на страницу .asmx, устанавливая SOAPAction, Content-Type, Content-Length и HTTPBody, я просто продолжаю получать didReceiveAuthenticationChallenge сообщений.

Кроме того, я пытаюсь отправить POST в IIS с помощью встроенной проверки подлинности Windows (IWA), что означает, что я пытаюсь согласовать вызов NTLM.

Ответы [ 2 ]

12 голосов
/ 11 марта 2009

Я, к сожалению, нашел свой ответ. NSURLConnection не может выполнить аутентификацию NTLM. Вот пост о том, как выполнить аутентификацию NTLM с использованием стека CFNetwork.

HTTP Post через стек CFNetwork

Нашел что-то даже лучше, чем заняться всем этим утомительным занятием: Тот, кто уже сделал это!
ASIHTTPRequest

Обновление: существует обходной путь для iOS 4 , который позволяет снова выполнить аутентификацию NTLM

2 голосов
/ 10 марта 2009

Звучит так, будто ваш веб-сервис имеет разные права на чтение (получение) и запись (публикацию). Я не думаю, что это проблема с iPhone или NSURLConnection вообще.

...