2010-06-24 9 views
0

J'ai vu des questions similaires ici sur SO, mais aucune récente - donc je vérifie pour voir si quelque chose a changé.base64 pour l'authentification de base dans l'objectif-c

Je vois que didReceiveAuthenticationChallenge: est parfaitement capable de faire un encodage base64 pour l'authentification de base, mais le serveur j'ai besoin d'envoyer un auth Authorization: en-tête de base ne renvoie pas un HTTP401 et (je suppose?) Ne provoquer le didReceiveAuthenticationChallenge: déléguer le message à envoyer - donc je ne peux pas construire les informations d'identification là-dedans.

Ainsi, au lieu, j'utilise

[urlRequestForMyWorkspace addValue: @ "Basic" forHTTPHeaderField: @ "Autorisation"];

avant d'appeler initWithRequest:

Mais - je ne peux pas trouver un api objectif-c qui fonctionne sur l'iPhone pour construire cette informations d'identification codées base64 d'un nom d'utilisateur et pw (autre que d'écrire un exemple http://www.cocoadev.com/index.pl?BaseSixtyFour).

Alors - est que la seule façon, ou est-il d'une autre façon que je peux la force http titres de compétence auth de base à envoyer en utilisant la norme apis - si le serveur ne renvoie pas un 401, ce qui est Je suppose que les causes didReceiveAuthnChallenge: à envoyer?

merci, Richard

+0

OP ici. La question n'est pas vraiment une API base64, mais plutôt de savoir s'il existe un moyen d'éviter d'en utiliser un, car l'iphone sait comment le faire :) – richard

+0

Le pire vient au pire, vous pourriez essayer d'inclure la chaîne d'authentification l'URL: par exemple http: // utilisateur: pass @ url. –

Répondre

0

Eh bien, le problème est sur votre code côté serveur, car il ne retourne pas 401 =>didReceiveAuthenticationChallenge: delegate ne sera jamais appelé. Donc, vous êtes obligé de le faire de cette façon (en utilisant les champs d'en-tête)