Je suis en train d'écrire un Asp.net MVC 2 application qui utilise l'Authentification par Formulaires et actuellement j'ai un problème avec notre application iPhone en ce qui concerne l'authentification/identification sur le web. Nous avons développé une simple application pour iPhone qui utilise la UIWebView de contrôle. À ce stade, tout ce que l'application n'est d'accéder à notre Asp.Net site web. Simple, non? Le problème, c'est que l'utilisateur ne peut pas obtenir au-delà de la page de connexion. La repro étapes sont les suivantes:
- Ouvrez l'application iPhone.
- L'application accède à la page d'accueil.
- l'utilisateur n'est pas authentifié, de sorte qu'ils sont redirigés vers l'écran de connexion/page
- L'utilisateur entre le nom d'utilisateur correct et le mot de passe. clique sur le bouton envoyer.
- sur le côté serveur, l'utilisateur est authentifié et un cookie est généré et envoyé au client à l'aide de FormsAuthentication.GetAuthCookie.
- Le serveur envoie redirect pour envoyer l'utilisateur vers la bonne page d'accueil.
Mais l'utilisateur est alors redirigé RETOUR à l'écran de connexion!
J'ai fait quelques poussées de débogage sur le présent et ce que je sais, c'est:
Le cookie est envoyé au client, et le client est de stocker le cookie. Vérifié cela dans l'iPhone débogueur et aussi en utilisant Javsascript pour afficher les données des cookies sur la page. Le cookie est envoyé vers le serveur. Vérifié cela dans le débogueur Visual Studio. C'est le bon cookie (c'est le même que celui qui a été défini). La propriété de l'Utilisateur.L'identité.IsAuthenticated renvoie la valeur false pour une raison quelconque, même si l'auth cookie est contenue dans l'objet de Requête. J'ai vérifié que l'application iPhone est configuré pour accepter les cookies, et ils sont sur le client.
Voici la drôle de chose: Il fonctionne très bien si vous ouvrez le navigateur Safari sur l'iPhone et accédez à notre site directement.
Il a le même comportement sur l'iPad trop dans qu'elle ne soit pas passé à l'écran de connexion. Cette repros sur les émulateurs, et sur les périphériques.
Ce site web a été testé avec IE 7 et 8, Safari (pour Windows), Blackberry, IEMobile 6.5, Phone 7 et il fonctionne à trouver. La seule circonstance qu'il ne veut pas travailler, est la UIWebView dans l'application iPhone.