IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

se loguer sur un site web en c#


Sujet :

C#

  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 130
    Par défaut se loguer sur un site web en c#
    Bonjour,
    Je developpe une application C#, je voudrais lire un fichier se situant sur un site, mais pour lire ce fichier je dois m'authentifier sur le site.
    Donc comment m'authentifier (me loguer) sur le site en c# ?

    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Tu peux y arriver HttpWebRequest.
    Il faudrait voir dans le code de la page HTML avec le login quel l'URL de la form ainsi que le nom des parametres de la form.
    Après, tu crée une requête POST avec HttpWebRequest en passant les paramètres et leur valeurs.
    Un exemple ici :

    http://www.netomatix.com/httppostdata.aspx

  3. #3
    Membre très actif
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 130
    Par défaut
    Selon ta réponse il faudrait que je scrute la page Html de login, c'est ca ?

  4. #4
    Membre très actif
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 130
    Par défaut
    En plus de la méthode proposée par EquinoxeDotNet ci-haut et que je n'arrive pas à utiliser pour le moment.
    je crois que le lien ci-dessous montrent une autre méthode mais je n'ai pas non plus de test fonctionnel avec cette méthode :

    Lien :
    http://www.4guysfromrolla.com/articles/102605-1.aspx


    Merci de m'aider car je suis solidement bloqué la dessus!

  5. #5
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Ma réponse est pour un login via forms (comme developpez.com par exemple). Ton lien, c'est avec des credential. C'est un tout autre système.

    Dans mon cas, voila un code qui va te permettre de te connecter à Developpez.com (juste ajouter ton user et password):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                ServicePointManager.Expect100Continue = false;
                var username = ""; // ajouter username & password
                var password = "";
                var encoding = new ASCIIEncoding();
                var requeststring =  "vb_login_username={0}&vb_login_password=&s=&securitytoken=guest&do=login&vb_login_md5password={1}&vb_login_md5password_utf={1}";
                var postData = string.Format(requeststring, username, MD5encoding(password));
                var data = encoding.GetBytes(postData);
                // Prepare web request...
                var myRequest =
                  (HttpWebRequest)WebRequest.Create("http://www.developpez.net/forums/login.php?do=login");
                myRequest.Accept =
                    "*/*";
                myRequest.Referer = "";
                myRequest.Expect = "";
                myRequest.Method = "POST";
                myRequest.ContentType = "application/x-www-form-urlencoded";
                myRequest.ContentLength = data.Length;
                myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
                var newStream = myRequest.GetRequestStream();
                // Send the data.
                newStream.Write(data, 0, data.Length);
                newStream.Close();
                var rep = myRequest.GetResponse();
            }
            private string MD5encoding(string toencode)
            {
                var  encoding=new System.Text.UTF8Encoding();
     
                var sb = new StringBuilder();
     
                var md5 = new MD5CryptoServiceProvider();
                var hash = md5.ComputeHash(encoding.GetBytes(toencode));
                foreach (byte hex in hash)
                    sb.Append(hex.ToString("x2"));
                return sb.ToString();
            }
    La ligne "ServicePointManager.Expect100Continue = false;" est importante car .NET met par défaut le Expect à 100 et souvent ça fait foirer parce que le serveur ne répond pas par 100.

    Comme tu vois ici j'ai du faire un hashing par MD5 du password, car celui-ci n'est (heureusement) pas envoyé en clair.
    Pour voir quelle est la requete envoyée je conseille Fiddler (http://www.fiddler2.com/fiddler2/) un outil que tout web developeur se doit de métriser (sauf si ça ne dérange pas de perdre du temps). Logge toi su le site que tu veux, et tu va voir dans Fiddler la requete, avec tous les paramètres envoyés.

  6. #6
    Membre très actif
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 130
    Par défaut
    Il me manquait des parametres sur la requête. Fiddler va me servir !
    MERCI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Page d'accés aux données Access sur un site web
    Par kilimanjaro dans le forum Access
    Réponses: 3
    Dernier message: 29/01/2006, 19h31
  2. [Cookies] Langue par défaut sur un site web
    Par Jet-Li dans le forum Langage
    Réponses: 3
    Dernier message: 09/12/2005, 20h52
  3. modification de l'apparence de la souris sur un site web
    Par maffoyon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/12/2005, 19h05
  4. faire un don sur un site web
    Par star_light dans le forum E-Commerce
    Réponses: 2
    Dernier message: 23/08/2005, 16h11
  5. Réponses: 2
    Dernier message: 08/11/2003, 23h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo