262 votes

L’authentification de base HTTP - ce qui ' s l’expérience attendue de navigateur ?

Lorsqu'un serveur permet un accès par Authentification HTTP de Base, qu'est-ce que l'expérience devrait être sur le navigateur?

En général, je viens de le faire avec curl:

curl -u myusername:mypassword http://somesite.com

Et il fonctionne très bien. Cependant, pour l'instant, je n'ai pas accès à la boucle (longue histoire), et je veux juste le faire à partir du navigateur web, si possible.

J'ai pensé à la façon Basic Auth était censé travailler étais - je tape dans l'url que je veux, le serveur décide ensuite je ne suis pas autorisé, renvoie le code de réponse 401, et je tape mon nom d'utilisateur et mot de passe dans une invite de commandes. Si elle est correcte, le chargement de la page!

Cependant, sur somesite.com je ne suis pas d'obtenir une autorisation invite à tous, juste une page qui dit que je ne suis pas autorisé. Ne unsite de ne pas mettre en œuvre l'Authentification Basique de flux de travail correctement, ou est-il autre chose que je dois faire?

163voto

Nicocube Points 847

Avez-vous essayé `` dans votre navigateur ?

15voto

AUSteve Points 2482

Vous pourriez avoir vieux invalid username/mot de passe mis en cache dans votre navigateur. Videz les et vérifiez à nouveau.

Si vous utilisez IE et somesite.com dans votre zone de sécurité Intranet, IE peut envoyer vos informations d’identification windows automatiquement.

9voto

Chris McCauley Points 9764

WWW-Authenticate header

Vous pouvez également l'obtenir si le serveur envoie un code de réponse 401 mais ne définit pas l'en-tête WWW-Authenticate correctement. Je dois savoir que je viens de corriger cela dans son propre code car les applications VB n'apparaissaient pas à l'invite d'authentification.

7voto

Chris Hinch Points 63

S'il n'y a pas d'informations d'identification fournies dans les en-têtes de requête, voici la réponse minimale requise pour que IE puisse demander à l'utilisateur des informations d'identification et resoumettre la demande.

 Response.Clear();
Response.StatusCode = (Int32)HttpStatusCode.Unauthorized;
Response.AddHeader("WWW-Authenticate", "Basic");
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X