HttpBasicAuthentication в IPhone - PullRequest
       25

HttpBasicAuthentication в IPhone

1 голос
/ 17 апреля 2009

В моем приложении для iPhone я пытаюсь отобразить изображение на iphone с моего сервера, который требует авторизации. Я пытаюсь использовать NSURLConnection для получения изображения, но он не запрашивает у меня учетные данные пользователя. то есть он вовсе не собирается использовать метод didReceiveAuthenticationChallenge. Кто-нибудь может мне помочь с этим вопросом?

Ответы [ 2 ]

6 голосов
/ 20 апреля 2009

Вы можете самостоятельно вычислить необходимый заголовок авторизации и вручную применить его к исходящему NSURLRequest перед созданием NSURLConnection, например:

NSMutableURLRequest *someURLReq = ...
NSString *auth = ...
[someURLReq setValue:auth forHTTPHeaderField:@"Authorization"];

Содержимое auth в случае базовой аутентификации HTTP с использованием NS64 Дэйва Дрибина в base64 категории будет:

NSString *username = ...
NSString *password = ...
NSString *combo = [NSString stringWithFormat:@"%@:%@", username, password];
NSData *comboData = [NSData dataWithBytes:[combo UTF8String] length:combo.length];
NSString *auth = [NSString stringWithFormat:@"Basic %@", [comboData encodeBase64]];

Обратите внимание, что это не шифрование, пароль представляет собой простой текст для всех практических целей и будет прослушиваться, если вы не подключены по SSL.

0 голосов
/ 18 апреля 2009

Поскольку вы не публикуете какой-либо код, трудно сказать. Я бы дважды проверил и удостоверился, что у вас правильно установлен член делегата на NSURLConnection. Если это не проблема, попробуйте использовать отладчик HTTP и убедитесь, что URL действительно запускает запрос аутентификации.

...