base64 для базовой аутентификации в objective-c

Я видел несколько похожих вопросов здесь, на SO, но ни одного недавнего - так что я проверяю, не изменилось ли что-нибудь.

Я вижу, что didReceiveAuthenticationChallenge: отлично может выполнять кодирование base64 для базовой аутентификации, но сервер, на котором мне нужно отправить базовый заголовок auth Authorization:, не возвращает HTTP401 и (я полагаю?) Не вызывает didReceiveAuthenticationChallenge: делегировать сообщение для отправки - поэтому я не могу создать там учетные данные.

Поэтому вместо этого я использую

[urlRequestForMyWorkspace addValue: @ "Базовый" forHTTPHeaderField: @ "Авторизация"];

перед вызовом initWithRequest:

Но - я не могу найти API-интерфейс objective-c, который работает на iphone для создания учетных данных в кодировке base64 из имени пользователя и pw (кроме записи, например, http://www.cocoadev.com/index.pl?BaseSixtyFour).

Итак - это единственный способ, или есть какой-то другой способ, которым я могу принудительно отправить базовые учетные данные HTTP-аутентификации с использованием стандартного API-интерфейса - если сервер не возвращает 401, а это то, что Я предполагаю, что причины didReceiveAuthnChallenge: быть отправлены?

спасибо Ричард


person richard    schedule 24.06.2010    source источник
comment
ОП здесь. На самом деле вопрос не в api base64, а скорее в том, есть ли способ избежать его использования, поскольку iphone явно знает, как это сделать :)   -  person richard    schedule 24.06.2010
comment
В худшем случае вы можете попробовать включить строку аутентификации в URL-адрес: например, user: pass @ url.   -  person William Niu    schedule 04.08.2010


Ответы (1)


Что ж, проблема в коде на стороне вашего сервера, поскольку он не возвращает 401 => didReceiveAuthenticationChallenge: delegate никогда не будет вызываться. Итак, вы вынуждены сделать это таким образом (используя поля заголовка)

person itsaboutcode    schedule 26.08.2010