12
votes

HTTPLISTENER: Comment obtenir l'utilisateur HTTP et le mot de passe?

Je suis confronté à un problème ici, avec HTTplistener.

Lorsqu'une demande de formulaire xxx

est faite, comment puis-je obtenir l'utilisateur et le mot de passe? Httpwebrequest a une propriété de réfort, mais HTTplistenerRequest ne l'a pas, et je n'ai pas trouvé le nom d'utilisateur dans aucune propriété.

Merci pour l'aide.


0 commentaires

3 Réponses :


26
votes

Ce que vous essayez de faire est de passer des informations d'identification via http Basic Auth, je ne sais pas si le nom d'utilisateur: le mot de passe Syntaxe est pris en charge dans HTTplistener, mais si tel est le cas, vous devez préciser que vous acceptez l'autorité de base Premièrement.

HttpListenerBasicIdentity identity = (HttpListenerBasicIdentity)context.User.Identity;
Console.WriteLine(identity.Name);
Console.WriteLine(identity.Password);


1 commentaires

Désolé, j'ai dit "je ne suis pas si le nom d'utilisateur: Syntaxe de mot de passe est pris en charge dans HTTplistener", mais il s'agit bien sûr du client qui convertira cela en en-tête "www-authentifier: basique", donc cela ne compte que si le client prend en charge. il. Je pense que le soutien a été supprimé de c.-à-je de cœurs récemment.



5
votes

Obtenez l'autorisation code> en-tête. Son format est le suivant

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==


0 commentaires

4
votes

Vous devez d'abord activer l'authentification de base: xxx pré>

puis dans votre méthode TRAGYREQUEST, vous pouvez obtenir le nom d'utilisateur et le mot de passe: P>

if (context.User.Identity.IsAuthenticated)
{
    var identity = (HttpListenerBasicIdentity)context.User.Identity;
    Console.WriteLine(identity.Name);
    Console.WriteLine(identity.Password);
}


0 commentaires