2010-07-28 6 views
1

Comment se connecter par programme à un site Web?Connexion par programme à un site Web

Je veux juste vérifier que le nom d'utilisateur et le mot de passe fournis d'un site Web sont corrects ou non.

Merci.

+0

Sous la direction de nettoyer le ton un peu. –

+0

@Robert, merci - beaucoup plus propre. – ConsultUtah

Répondre

11

La manière la plus simple de faire cela à partir de .NET est Watin. Vous feriez quelque chose comme:

using (var browser = new IE("http://mysite.com")) 
{ 
    browser.TextField(Find.ByName("email")).TypeText("[email protected]"); 
    browser.TextField(Find.ByName("password")).TypeText("password"); 
    browser.Button(Find.ByName("login")).Click(); 

    if (browser.ContainsText("Welcome [email protected]!")) 
    { 
    // Success 
    } 
} 

Pour le faire avec HttpWebRequest, vous:

var req = (HttpWebRequest)WebRequest.Create(url); 
req.Method = "POST"; 
req.ContentLength = postContent.Length; 
req.ContentType = "application/x-www-form-urlencoded"; 

using (var streamWriter = new StreamWriter(req.GetRequestStream())) 
{ 
    streamWriter.Write(postContent); 
} 

using (var res = (HttpWebResponse)req.GetResponse()) 
{ 
    _status = res.StatusCode; 
    using (var streamReader = new StreamReader(res.GetResponseStream())) 
    { 
    response = streamReader.ReadToEnd(); 
    } 
}  

Juste pour ajouter une 3ème façon, vous pouvez également utiliser WebClient:

var nvc = new NameValueCollection(); 
nvc.Add("email", "[email protected]"); 
nvc.Add("password", "password"); 

var wc = new WebClient(); 
byte[] responseArray = wc.UploadValues("http://mysite.com",nvc); 
string responseText = Encoding.ASCII.GetString(responseArray)); 
+0

Exécuter ce code trop souvent avec les fausses informations d'identification et assez sûrement l'utilisateur sera verrouillé hors de son compte. – Jeroen

+0

mais comment puis-je savoir que l'utilisateur s'est connecté avec succès dans le code ....? pourrait-il être fait à travers HTTP Request? (Je pense que c'est bon pour le débutant comme moi) Thnks en prévision !!! – xtremist

+1

Avec Watin, vous devez alors vérifier browser.ContainsText ("Bienvenue [email protected]!") Ou quelque chose du genre. Vous pouvez absolument le faire avec HttpWebRequest, mais le code est beaucoup plus difficile. Je vais modifier ma réponse et ajouter le code ci-dessus. – ConsultUtah

Questions connexes