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

Web & réseau Delphi Discussion :

Comment passer les identifiants d'une page internet automatiquement ?


Sujet :

Web & réseau Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Comment passer les identifiants d'une page internet automatiquement ?
    Bonjour, j'utilise la méthode suivante pour récupérer des info sur une page html

    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
    procedure ListerLiens(List: TStrings; IEApp: OLEVariant; aURL:string); 
    var 
      IEApp: OLEVariant; 
      nbLinks,i:Integer; 
    begin 
      //Si l'objet OLE n'est pas créé 
      if(VarIsEmpty(IEApp))then 
      begin 
        //Créer l'objet OLE 
        IEApp := CreateOleObject('InternetExplorer.Application'); 
        //Le rendre visible 
        IEApp.Visible := true; 
        //Ouvrir la page spécifiée pas aURL dans l'objet OLE 
        IEApp.Navigate(aURL); 
      end; 
     
        //Attendre que la page soit complètement chargée avec 
        // READYSTATE_COMPLETE = 4 
        while Cardinal(IEApp.readyState) <> 4 do sleep(1000); 
     
        // Récupérer le nombre de liens 
        nblinks := Cardinal(IEApp.Document.links.length); 
        //Ajouter le nombre de liens dans le TStrings 
        List.Add(Format('Nombre de liens = %d',[nblinks])); 
     
        // Ajoute les liens à la suite du TStrings 
        for i := 0 to nblinks - 1 do 
          Self.MemoLog.Lines.Add(string(IEApp.Document.links.item(i).href)); 
    end;
    Le problème est que cette page demande une identification (.htaccess )
    Comment puis-je passer ces identifiants ?
    Merci

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    On peut inclure l'identification dans l'url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://login:pwd@www.monsite.com
    par contre question securité je sais pas trop si c'est top
    Sinon faudrais essayer avec les methodes d'envoie de parametres "POST" mais la .. je ne sais pas trop comment on fait
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Bonjour, Clorish, merci de ta réponse.
    J'avais bien pensé a passer ca dans l'url mais je ne me rappelai plus de la syntaxe mais effectivement je ne pense pas que cela soit tellement sécurisé.

    Je pensai utiliser IdHTTP (indy) avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Request.Username:=IdentHTTP; //Utilisateur
                Request.Password:=PassHTTP; //Mot de passe
                Request.BasicAuthentication := True; //Auth. BASIC
                Get(aURL);
    seulement après je ne sais pas comment utilser ".Document......" depuis ce composant indy (est ce possible ?)

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    tu as une réponse possible dans la

    http://delphi.developpez.com/faq/?pa...nsdanspagehtml
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Bonjour Rayek et merci.

    Je l'ai pourtant parcouru cette FAQ mais comme mon but n'est pas de récupérer les liens de ma page (j 'ai mis ca juste en exemple) ... je ne m'était pas arrêté sur la dessus , surtout que la méthode "toute faite" document.xxxx.yyyyy me plaisait bien .... Néanmoins, je devrai pouvoir adapter le code du lien fourni pour mon problème.

    Au passage, j'ai du coup soulevé quelque chose qui me tracasse :

    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://monlog:monpass@monsite.net
    dans firefox ca passe (il me demande une confirmation mais c'est ok)

    par contre la même chose avec IE ne fonctionne pas

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par jeunot Voir le message
    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://monlog:monpass@monsite.net
    dans firefox ca passe (il me demande une confirmation mais c'est ok)

    par contre la même chose avec IE ne fonctionne pas
    He oui .... Ya bilou .... et les autres
    En regle general tout developpement autour du web demande un double Dev : IE et LEs autres .... et encore .... Meme si on est compatible IE6 on ne l'est pas forcement sous IE7.
    D'ailleur je soupsonne MS de le faire expres car IE7 est instalabe uniquement sous Windows certifé ... ce qui en plus d'obliger les developpeur a developper sous IE, il lutte contre le piratage
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Bin oui mais après reflexion la méthode de passer les identifiants par l'url ne me semble pas si mal , le problème de "sécurité" important finalement assez peu dans l'appli (qui n'est qu'a "usage familiale") que je développe....

    La méthode que me propose Rayek est finalement assez lourde, si j'ai bien compris, il s'agit de lire toute la source de la page pour trouver les instances de "href" et les enregistrer dans un tstring. Pour mon cas précis, il s'agit de récupérer deux listes d'options (contenu dans deux listes déroulante d'un formulaire de la page)
    et donc faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Myitem := string(IEApp.Document.adform.dossier.options.item(i).value);
      form1.Combobox1.Items.add(Myitem); 
    Myitem2 := string(IEApp.Document.adform.dossier2.options.item(i).value);
      form1.Combobox2.Items.add(Myitem2);
    est beaucoup plus "léger" et simple pour moi.
    je vais donc chercher comment passer ces identifiants dans l'url mais avec IE.
    Si quelqu'un a la réponse...

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par jeunot Voir le message
    je vais donc chercher comment passer ces identifiants dans l'url mais avec IE.
    Si quelqu'un a la réponse...
    tu ne précise pas comment ton site vérifie ces identifiants, alors que c'est tout de même le point de départ
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Le problème est que cette page demande une identification (.htaccess )
    Bonjour, j'ai mis .htaccess dans mon 1er message, pensant que cela était suffisant .... pour plus de précision, voici le .htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PerlSetVar AuthFile Mondossier/liste.txt
    AuthName "Acces Restreint"
    AuthType Basic
    require valid-user
    et le fichier liste.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    user1:pass1
    user2:pass2
    je n'ai pas mis de .htpasswd ni crypté le mot de passe car test, mais j'ai testé
    sur un autre serveur avec la mm config mais le .htaccess pointant sur un dossier contenant un .htpasswd avec mdp en md5 = idem

    bon je (re)précise que cela fonctionne lors de l'ouverture de la boite de dialogue demandant les identifiants (sous ie ou firefox , quand je ne précise que l'url) ou encore avec le composant -indy (10) idhttp - en précisant les identifiant.

    ca marche sous firefox avec une url du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://login:pass@monsite.fr
    mais pas sous IE 6 ou IE 7

    Tout ce que j'ai trouvé sur le net c'est que microsoft aurai supprimé cette possibilité (login:pass@monsite.fr) because faille de sécurité.
    Par contre en ftp (ftp://login:pass@monsiteftp) fonctionne toujours avec IE

  10. #10
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par jeunot Voir le message
    Tout ce que j'ai trouvé sur le net c'est que microsoft aurai supprimé cette possibilité (login:pass@monsite.fr) because faille de sécurité.
    Par contre en ftp (ftp://login:pass@monsiteftp) fonctionne toujours avec IE
    Tiens ... ils se mettent a gerer les failles de securités
    En meme temps sur ce coup ils ont pas tord ....
    Je m'en suis douté et j'ai cherché une option pour eventuelement la reactiver masi j'ai rien trouvé.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    j'ai trouvé comment désactiver cette "restriction"

    source :
    http://support.microsoft.com/kb/834489/fr

    Désactivation du nouveau comportement par défaut pour la gestion des informations utilisateur dans les URL HTTP ou HTTPS
    Pour désactiver le nouveau comportement par défaut dans l'Explorateur Windows et Internet Explorer, créez les valeurs DWORD iexplore.exe et explorer.exe dans l'une des clés de Registre suivantes et définissez leurs données de valeur sur 0.
    • Pour tous les utilisateurs du programme, définissez la valeur dans la clé de Registre suivante :
    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
    • Pour l'utilisateur actuel du programme uniquement, définissez la valeur dans la clé de Registre suivante :
    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

  12. #12
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    l'AuthType Basic fonctionne sur un principe simple, la chaine "user:pass" est encodée en Base64 et ajoutée dans l'entête HTTP (voir mes explications sur le CGI)

    personnellement je trouve bien plus simple de faire la requête HTTP directement sous Delphi plutôt que je piloter IE Mais du coup il me semble clair, que si la notation http://user:pass@site ne fonctionne pas, il faut trouver dans l'objet IE une méthode permettant de spécifier le profil et le mot de passe.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/08/2007, 07h34
  2. Réponses: 1
    Dernier message: 22/06/2007, 15h40
  3. Réponses: 5
    Dernier message: 20/08/2006, 12h32
  4. Comment enregistrer les images d'une page web ?
    Par Chris33 dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 11/07/2006, 22h09

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