2011-09-19 4 views
1

Je développe une application interne pour notre groupe de support. Nous n'avons pas encore d'API d'authentification spécifique à l'iPhone. Alors, voici ce que j'essaie de faire. Nous avons un portail de support externe qui, lorsque vous tentez d'accéder, redirige vers notre page de connexion unique. La page de connexion unique a un formulaire avec le nom d'utilisateur habituel, les champs de mot de passe et certains champs de saisie masqués. Les valeurs des champs de saisie masqués changent régulièrement.Authentification Édition

.: par exemple

<form method="post" action="/server/sso_auth" name="MLoginForm" autocomplete="off"> 
<input type="hidden" name="v" value="v1.4" /> 
<input type="hidden" name="auth_id" value="5206764149601646385" /> 
<input type="hidden" name="AUTH_REQ" value="<value>" /> 
<input type="hidden" name="sitetoken" value="<value>" /> 

<input type="text" id="Mssousername" name="ssousername" title=" Please enter a Username" maxlength="80" value="" class="Msf-txtbox" tabindex=2/> 

<input type="password" id="Mssopassword" name="password" title=" Please enter a Password" value="" maxlength="255" class="Msf-pwdbox" tabindex=3/> 

Je suis en mesure de signer avec succès à l'application que si je fournis le auth_id, AUTH_REQ et champs sitetoken (en utilisant NSMutableRequest/NSURLResponse standard). Jusqu'à ce que nous ayons une API d'authentification spécifique à l'iPhone, je veux être capable de lire/analyser la page de connexion unique, lire les valeurs des champs d'entrée cachés et les utiliser pour l'authentification. En ce moment, je dois d'abord les lire du navigateur, les copier et les coller dans mon code et me connecter tous les jours.

De toute façon je peux lire ces valeurs d'entrée directement? Tenter d'accéder directement à la page de connexion unique est interdit ... Cela ne fonctionne que sur la redirection.

Répondre

0

Lire la page directement avec NSURLConnection, les redirections peuvent être effectuées. 302 redirections peuvent être faites pour se produire automatiquement, les redirections META et Reload doivent être faites dans le code avec un peu d'analyse. Les rappels Javascript peuvent être plus problématiques. Vous pouvez également spécifier l'agent utilisateur pour qu'il corresponde aux besoins du serveur. Je fais ça tout le temps.

Pour gérer vous réoriente pouvez utiliser la fonction de rappel NSURLConnection:

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)callbackRequest redirectResponse:(NSHTTPURLResponse *)redirectResponse