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 :

Webclient téléchargement mauvais fichier


Sujet :

C#

  1. #21
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    rajoute peut-être la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.AllowAutoRedirect=true;
    après ta ligne 55 (en principe par défaut, la propriété est déjà à true, mais sait-on jamais)

  2. #22
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    J'ai toujours la même chose

  3. #23
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    Il y a moyen pour nous de tester la vraie adresse internet que tu interroges ? (au moins pour un fichier)

  4. #24
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Voici une adresse réelle qui est dans le document : http://applnet.fiducial.fr/GetConten...&p5=1&p6=NOPUB

    En revanche elle ne fonctionnera pas car elle est uniquement disponible sur l'intranet

  5. #25
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    Ce lien ne fonctionne effectivement pas, donc pas moyen de t'aider avec celui-ci.
    Le lien que tu m'as envoyé en MP n'aidera pas non plus puisque qu'il mène directement au fichier et donc peut être utilisé directement avec webclient.dowloadfile
    Ce qu'il manque c'est le passage de la requête interne vers la localisation "physique" du fichier, donc récupérer la redirection

  6. #26
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Comment puis-je récupérer la redirection ?

  7. #27
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    c'est là le problème ....
    essai en rajoutant un type de contenu au header de la requête, toujours avant de récupérer la réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.ContentType="application/pdf";
    tu peux aussi faire un essai en mettant à false AllowAutoRedirect pour voir

  8. #28
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Au header de la requête, c'est-à-dire ?

  9. #29
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    ... rajoute la ligne de code que j'ai mise avant l'appel à GetResponse() (vers les lignes 55-56 de ton précédent code posté et donc vers le AllowAutoRedirect que tu as en principe rajouté)

  10. #30
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    J'ai toujours les mêmes fichiers de 18ko qui se téléchargent

  11. #31
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    Tu as dit que cela fonctionnait avec l'utilisation du WebBrowser. Est-ce que tu ne peux pas récupérer par celui-ci l'adresse du fichier à télécharger et ensuite la passer au webclient ?

  12. #32
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Avec cette méthode ça fonctionnait : System.Diagnostics.Process.Start(link);

    Il faudrait peut être mettre une authentification au vu du code dans les fichiers téléchargés ?

    Voici le code des fichiers qui se téléchargent :

    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
    <!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 Transitional//EN" >
    <html>
    <head>
        <title>INTRANET II - Identification centralisée</title>
        <meta content="no-cache" http-equiv="Pragma" />
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
        <meta name="description" content="INTRANET II - Powered by nginx & Mono" />
        <link rel="stylesheet" type="text/css" href="Login.css" />
        <script type="text/javascript">
            function StopClick(e) {
                if (!CheckFields())
                    return true;
     
                e = e || window.event;
                var srcButton = e.srcElement;
                var login = document.getElementById("username").value;
                var pwd = document.getElementById("password").value;
                var btn = document.getElementById("btnValider");

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

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 905
    Points : 1 923
    Points
    1 923
    Par défaut
    Je pense que tu essaies d'accéder à une ressource protégée, qui nécessite d'être authentifié, du coup ça subit une redirection vers une page de login. Il te faut fournir des credentials à ta HttpWebRequest. Tu peux commencer à regarder ici. Quant au type de credentials requis, ça dépend de l'entreprise. Il peut s'agit d'identifiants Windows, d'un Active Directory ou encore autre chose, il te faudra demander à tes responsables.

    Point subsidiaire, si tu as l'occasion de revenir dessus, ou pour plus tard : tu peux découper une longue fonction en unités logiques plus petites. Exemple : récupérer le chemin de fichier, récupérer le fichier, extraire les liens, télécharger les fichiers des liens, créer le nouveau contenu, créer le nouveau fichier à partir de l'ancien fichier et du nouveau contenu, sauvegarder le nouveau fichier. De cette manière, tu pourras isoler les différents problèmes.

  14. #34
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Noxen Voir le message
    Je pense que tu essaies d'accéder à une ressource protégée, qui nécessite d'être authentifié, du coup ça subit une redirection vers une page de login. Il te faut fournir des credentials à ta HttpWebRequest. Tu peux commencer à regarder ici. Quant au type de credentials requis, ça dépend de l'entreprise. Il peut s'agit d'identifiants Windows, d'un Active Directory ou encore autre chose, il te faudra demander à tes responsables.

    Point subsidiaire, si tu as l'occasion de revenir dessus, ou pour plus tard : tu peux découper une longue fonction en unités logiques plus petites. Exemple : récupérer le chemin de fichier, récupérer le fichier, extraire les liens, télécharger les fichiers des liens, créer le nouveau contenu, créer le nouveau fichier à partir de l'ancien fichier et du nouveau contenu, sauvegarder le nouveau fichier. De cette manière, tu pourras isoler les différents problèmes.
    Effectivement, j'ai mis le code que j'ai dans mes fichiers sur Codepen et cela m'affiche le formulaire de connexion pour se connecter à l'intranet, j'ai donc essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(link);
                    NetworkCredential myCredentials = new NetworkCredential(username, password);
                    request.Credentials = myCredentials;
     
                    request.AllowAutoRedirect = true;
                    request.Method = "GET";
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    Les valeurs de username et password sont stockées en dur.

    Le problème est que j'ai toujours le même résultat (l'identification ne doit pas être réalisée correctement).

  15. #35
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    il manque peut-être le nom de domaine (comme c'est interne) ou tu peux utiliser les crédits de la session actuelle cf https://stackoverflow.com/questions/...epoint-library

  16. #36
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par umfred Voir le message
    il manque peut-être le nom de domaine (comme c'est interne) ou tu peux utiliser les crédits de la session actuelle cf https://stackoverflow.com/questions/...epoint-library
    J'ai toujours la même chose (j'ai essayé les deux)

  17. #37
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    J'ai cette ligne dans mes fichiers (avec un url différents pour chaque fichiers) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="Form1" method="post" action="login.aspx?service=http%3a%2f%2fapplnet.fiducial.fr%2fGetContenu%2fPageLogin.aspx%3fReturnUrl%3d%252fGetContenu%252fDownload.aspx%253fp1%253d1a4cd4a2-3987-4df1-be29-c0238cee790f%2526amp%253bp2%253d4%2526amp%253bp5%255d1%7526amp%253bp6%253dNOPUB" id="Form1">
    Je devrai pouvoir simuler un post avec les logins utilisateur depuis mon programme ?

    Et comment je peux trouver l'url à mettre pour POST ?

  18. #38
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    tu as l'adresse de login dans l'url indiqué après le mot clé service et tu vois que redirigera ensuite (mot clé ReturnUrl) vers la page de téléchargement (download.aspx?......)
    après "décodage" des caractères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://applnet.fiducial.fr/GetContenu/PageLogin.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetContenu/Download.aspx?p1=1a4cd4a2-3987-4df1-be29-c0238cee790f&p2=4&p5=1&p6=NOPUB

  19. #39
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2023
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2023
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Je n'ai pas l'impression que ça marche avec la méthode post, car je récupère toujours les mêmes fichiers de 18ko, en revanche, j'ai essayé de placer comme URL de post la page de connexion au portail intranet et j'ai eu en message de retour : Connexion réussie, donc est ce qu'il y a moyen de faire quelque chose à partir de ceci ou alors vaudrait-il mieux que je récupère le cookie qui sert d'authentification ?

  20. #40
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    Tu peux tenter dans un premier temps de lancer la requête de téléchargement à la suite de celle de logon. Si ça ne marche pas, récupérer et utiliser les infos de cookies

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Téléchargement de fichier
    Par casafa dans le forum Web & réseau
    Réponses: 21
    Dernier message: 18/06/2009, 23h34
  2. Réponses: 5
    Dernier message: 08/12/2005, 20h13
  3. Téléchargement de fichiers par HTTP / FTP
    Par Gladiator dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 07/12/2005, 11h28
  4. Réponses: 5
    Dernier message: 05/11/2005, 17h53
  5. [SOAP][XML][C#.NET] Téléchargement de fichiers XML
    Par juniorAl dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/06/2005, 09h35

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