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.
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.
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));
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
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
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
Sous la direction de nettoyer le ton un peu. –
@Robert, merci - beaucoup plus propre. – ConsultUtah