6
votes

Authentification Nsurl lorsque le serveur ne présente pas de défi

Je suis dans une situation où j'ai besoin d'envoyer une authentification (authentification HTTP de base) sur un serveur, mais le serveur ne m'envoie pas d'abord un défi. Cela a été suivi pour être un duplicata du commutateur WGET -Auth-No-Challenge. Mon problème est que je ne vois aucun moyen d'obtenir Nsurl de faire cela.

J'ai mis en œuvre une authentification de base dans mon délégué NsurlConnection, mais le -Connection: DidreceiveAuthenticationChallenge: n'est pas appelé.

Y a-t-il un moyen de forcer cet appel ou d'intégrer les informations d'authentification pour cette situation étrange?


0 commentaires

3 Réponses :


9
votes

Je pense que vous pouvez ajouter le nom d'utilisateur et le mot de passe à la nsurl

exemple xxx


1 commentaires

Pensez à échapper au nom d'utilisateur et mot de passe. Aucun d'entre eux ne devrait f.e. contient un caractère @ .



8
votes

Vous pouvez ajouter les informations d'autorisation à la demande manuellement en l'ajoutant à l'en-tête de la demande, comme: xxx

Où demande votre NSMUTABLEURLREQUEST et votre utilisateur / mot de passe sont votre nom d'utilisateur et mot de passe respectifs.

J'utilise cette approche avec une API de l'iPhone où le défi supplémentaire n'est pas initié par le serveur.


3 commentaires

Je reçois une erreur lorsque je veux utiliser votre solution: Nsdata ne répond pas à la base64encoding ". Avez-vous ajouté cette méthode vous-même?


Trouvé nsdataadditions, y compris base64encoding dans cette réponse: Stackoverflow.com/Questtions/1417893/...


Salut Tim, oui j'ai utilisé NsdataAdditions depuis le projet de colloque



0
votes

Je viens juste de tomber sur ce post et que cela fait quelques années que je viens de mettre en œuvre cette fonctionnalité dans iOS7 pour mon application à l'aide de la base intégrée64-coding sans aucune libs 3ème partie.

Pour ce que ça vaut la peine; xxx


0 commentaires