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 :

Insérer des identifiants dans une page web depuis un porgramme C#


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 37
    Points : 26
    Points
    26
    Par défaut Insérer des identifiants dans une page web depuis un porgramme C#
    Bonjour, je suis actuellement en train de développer un programme en c# qui ouvre une page internet explorer (pour s'authentifier) et se connecte automatiquement avec les paramètres uname et mdp.

    J'ai donc pour l'instant codé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void startExecProg(string URLchoosen, string uname, string mdp)
            {          
                var IE = new SHDocVw.InternetExplorer();
                IE.Navigate(URLchoosen); 
            }
    Néanmoins je ne trouve pas comment rentrer ces valeurs dans les champs correspondant via mon programme (il doit s'agir d'un contrôle html ou autre).

    Dans l'attente de vous lire,
    Solown

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    La solution de passer par la page de connexion et d'entrer les valeurs dans les zones d'éditions puis de cliquer sur le bouton de connexion va poser un problème de sécurité pour la plupart des navigateurs car ce n'est pas l'utilisateur qui est à l'origine du clic.

    Une autre solution consisterai à appeler la page référencée par l'attribut action du formulaire et à lui passer les paramètres directement.
    Pour savoir de quelle page je parle, elle devrait ressembler à quelque chose du genre.
    <form method="???" action="JeParleDeCeci">

    Après la méthode d'envoi de ces paramètre va dépendre de ce qu'il y a dans l'attribut POST.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Merci pour ta réponse rapide, je pense que je vais utiliser au final l'objet WebBrowser qui me permettra du coup de m'identifier Par contre je suis vraiment novice et je ne trouve pas de tutoriels pour utiliser l'objet WebBrowser, seulement sa librairie.

    Du coup dans mon programme j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void startExecProg(string URLchoosen, string uname, string mdp)
            {
                WebBrowser ie = new WebBrowser();
                ie.Navigate(URLchoosen);
            }
    Néanmoins aucune page ne s'ouvre, je pense devoir créer un nouveau formulaire pour afficher la page web mais je ne vois pas comment le faire.

    Au plaisir de vous lire,
    Solown.

  4. #4
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    Je pense que la meilleure solution, c'est celle de popo.
    Tu identifies ce qui est effectué lors du clic du formulaire et suivant la methode utilisée (POST ou GET) tu envois les parametres voulu via une requete http.

  5. #5
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 898
    Points : 1 915
    Points
    1 915
    Par défaut
    Citation Envoyé par Solown Voir le message
    Merci pour ta réponse rapide, je pense que je vais utiliser au final l'objet WebBrowser qui me permettra du coup de m'identifier Par contre je suis vraiment novice et je ne trouve pas de tutoriels pour utiliser l'objet WebBrowser, seulement sa librairie.

    Du coup dans mon programme j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void startExecProg(string URLchoosen, string uname, string mdp)
            {
                WebBrowser ie = new WebBrowser();
                ie.Navigate(URLchoosen);
            }
    Néanmoins aucune page ne s'ouvre, je pense devoir créer un nouveau formulaire pour afficher la page web mais je ne vois pas comment le faire.

    Au plaisir de vous lire,
    Solown.
    Le WebBrowser (que ce soit WinForm ou WPF) est un composant graphique comme un Label ou une TextBox. Tu peux l'instancier toi-même dans le code mais d'une manière ou d'une autre tu vas devoir l'ajouter à une fenêtre que tu vas afficher.

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Après la méthode d'envoi de ces paramètre va dépendre de ce qu'il y a dans l'attribut POST.
    Je remarque que ma langue à fourché, ou plutôt mes doigts ont dérapé.
    Je voulais parler de l'attribut "method" qui dans le cas de la soumissions d'un formulaire prend le plus souvent la méthode "POST".
    Comme l'indique Flow_75, les données peuvent également être envoyé par la méthode GET.

    Je n'ai jamais eu l'occasion d'utiliser le composant Web Browser.
    Néanmoins, comme l'a précisé Noxen, il faut l'ajout à une fenêtre via Controls.Add. Ce qui implique également d'instancier cette fenêtre.
    Le plus simple est de créer cette fenêtre et son Web Browser depuis l'IDE et de se contenter de la piloter par programme.

    utiliser au final l'objet WebBrowser qui me permettra du coup de m'identifier
    N'ayant jamais utilisé le Web Browser je ne sais pas ce que tu entends par là.
    Le Web browser n'est qu'une encapsulation de ton navigateur.
    Je me trompe peut-être mais je ne vois pas où est la différence, tu devras quand entrer toi-même les identifiants ou trouver un moyen de les remplir automatiquement pour ensuite valider.

    #Auto_Congratulation ON#
    Tout comme Flow_75, je pense que la solution que je t'ai proposé est meilleure.
    #Auto_Congratulation OFF#

  7. #7
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    Citation Envoyé par popo Voir le message
    Je remarque que ma langue à fourché, ou plutôt mes doigts ont dérapé.
    Je voulais parler de l'attribut "method" qui dans le cas de la soumissions d'un formulaire prend le plus souvent la méthode "POST".
    Comme l'indique Flow_75, les données peuvent également être envoyé par la méthode GET.

    Je n'ai jamais eu l'occasion d'utiliser le composant Web Browser.
    Néanmoins, comme l'a précisé Noxen, il faut l'ajout à une fenêtre via Controls.Add. Ce qui implique également d'instancier cette fenêtre.
    Le plus simple est de créer cette fenêtre et son Web Browser depuis l'IDE et de se contenter de la piloter par programme.


    N'ayant jamais utilisé le Web Browser je ne sais pas ce que tu entends par là.
    Le Web browser n'est qu'une encapsulation de ton navigateur.
    Je me trompe peut-être mais je ne vois pas où est la différence, tu devras quand entrer toi-même les identifiants ou trouver un moyen de les remplir automatiquement pour ensuite valider.

    #Auto_Congratulation ON#
    Tout comme Flow_75, je pense que la solution que je t'ai proposé est meilleure.
    #Auto_Congratulation OFF#
    1 - Le webBrowser n'a pas etre instancier dans une fenetre, je l'ai déja utilisé sans fenêtre.
    2 - Dans la methode GET, tu peux naviger dans l'url de la targer en mettant les arguments dans l'url (cf protocol http, ...)
    3 - Dans la methode POST, je ne sais pas, mais je pense que c'est prévu..!

    Reste quand meme le HTTPWebRequest qui reste simple.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Merci pour vos réponses, je connaissais pas l'existence des méthodes "POST" et "GET".

    Si je comprend bien, le but est d'injecter du code html lors de l'ouverture de ma page web pour forcer le remplissage des champs sur la page. Pourriez-vous me montrer un exemple d'utilisation de la méthode POST ou GET car les forums sur lesquelles j'ai cherché ne m'ont pas aidé jusque là.

    J'ai néanmoins testé en utilisant les methodes setAttribute pour entrer les informations d'authentification sauf qu'à l’exécution de mon programme,elui-ci me renvoie un erreur 'NullPointeurException' sur l'élément(donc le champs à remplir) ciblé :

    Ligne de code à partir de laquelle l'erreur est générée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.webBrowserwb.Document.All["username"].SetAttribute("value", "testmdp");
    Avez-vous idée de la source de cette erreur ?

    Au plaisir de vous lire,
    Solown.

  9. #9
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    Citation Envoyé par Solown Voir le message
    Merci pour vos réponses, je connaissais pas l'existence des méthodes "POST" et "GET".

    Si je comprend bien, le but est d'injecter du code html lors de l'ouverture de ma page web pour forcer le remplissage des champs sur la page. Pourriez-vous me montrer un exemple d'utilisation de la méthode POST ou GET car les forums sur lesquelles j'ai cherché ne m'ont pas aidé jusque là.

    Non c'est pas exact.
    Quand tu soumets un formulaire (genre cliquer sur "Envoyer"), le navigateur transmet les informations du formulaire (zone de texte, checkbox, etc...) via une requête (POST ou GET) à une page web (genre, page php) qui traitera ta demande.
    Là, ce qu'il faut faire, c'est récupère la requête qui est envoyée de ton navigateur et l'envoyer à sa place via un webBrowser ou autre...
    Tu ne remplies aucun champs ou autre...

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

Discussions similaires

  1. Integrer des vidéos dans une page web
    Par Paulux1 dans le forum Langage
    Réponses: 2
    Dernier message: 21/01/2008, 09h17
  2. [RegEx] Récupérer des données dans une page Web
    Par Pragmateek dans le forum Langage
    Réponses: 8
    Dernier message: 24/05/2006, 19h44
  3. [des panneaux dans une page web] que choisir ?
    Par oursblanc dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 02/12/2005, 11h02
  4. Insérer un fichier dans une page web
    Par Mad666 dans le forum ASP
    Réponses: 6
    Dernier message: 05/05/2004, 11h22

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