Mon application web est une page de connexion qui envoie les informations d'authentification via un appel AJAX. Si l'utilisateur entre le nom d'utilisateur correct et le mot de passe, tout va bien, mais si pas, le suivant se produit:
- Le serveur web détermine que, bien que la demande inclus un bien formée en-tête d'Autorisation, les informations d'identification dans l'en-tête ne sont pas authentifiés.
- Le serveur web renvoie un code d'état 401 et comprend un ou plusieurs WWW-Authenticate les en-têtes d'inscription pris en charge types d'authentification.
- Le navigateur détecte que la réponse à mon appel sur l'objet XMLHttpRequest est un 401 et la réponse est " WWW-Authenticate en-têtes. Il s'ouvre alors une boîte de dialogue d'authentification demander, encore une fois, pour le nom d'utilisateur et mot de passe.
Ce est tout très bien jusqu'à l'étape 3. Je ne veux pas la boîte de dialogue pop-up, je veux gérer la réponse 401 dans mon AJAX fonction de rappel. (Par exemple, en affichant un message d'erreur sur la page de connexion.) Je veux que l'utilisateur de re-entrer leur nom d'utilisateur et le mot de passe, bien sûr, mais je veux voir mon sympathique, rassurant formulaire de connexion, le navigateur est moche, par défaut de la boîte de dialogue d'authentification.
D'ailleurs, je n'ai pas de contrôle sur le serveur, alors le fait de retourner un code d'état personnalisé (c'est à dire, autre chose qu'un 401) n'est pas une option.
Est il possible que je peux supprimer la boîte de dialogue d'authentification? En particulier, puis-je supprimer le dialogue Authentification Requise dans Firefox 2 ou plus tard? Est-il possible de supprimer la connexion à [hôte] de dialogue dans IE 6 et plus tard?
Modifier
Des informations supplémentaires auprès de l'auteur (Sept. 18):
Je dois ajouter que le vrai problème avec le navigateur de la boîte de dialogue d'authentification pop-up est qu'il n'accordent pas suffisamment d'informations à l'utilisateur.
L'utilisateur a entré un nom d'utilisateur et mot de passe via le formulaire sur la page de connexion, il croit qu'il a tapé les deux correctement, et qu'il a cliqué sur le bouton envoyer, ou appuyez sur enter. Son attente est qu'il sera emmené à la page suivante ou peut-être dit qu'il a entré son information de façon incorrecte et doit essayer de nouveau. Cependant, il est plutôt présenté avec une inattendus de la boîte de dialogue.
La boîte de dialogue ne fait aucune reconnaissance du fait qu'il a juste fait entrer un nom d'utilisateur et mot de passe. Il n'est pas clairement qu'il y avait un problème et qu'il doit essayer de nouveau. Au lieu de cela, la boîte de dialogue présente à l'utilisateur cryptique de l'information comme "Le site dit:"[royaume]'." Où [royaume] est un court nom de domaine que seul un programmeur pouvait aimer.
Navigateur Web designers prendre note: on ne l'a demander, comment faire pour supprimer la boîte de dialogue d'authentification si la boîte de dialogue elle-même étaient tout simplement plus convivial. L' ensemble de raison que je suis en train de faire un formulaire de connexion, c'est que notre équipe de gestion de produits, à juste titre, considère que les navigateurs de l'authentification des dialogues être terrible.