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

Windows Forms Discussion :

C#, cookies et browser


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Par défaut C#, cookies et browser
    Bonjour,

    J'essaie dès qu'on clique sur un élément de ma winform, de me connecter à une page dont l'accès est protégé par mot de passe.

    Pour cela, j'utilise ce code :

    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
    30
    31
    32
    33
    34
    35
     
    CookieContainer cookieContainer = new CookieContainer();
     
                /*
                 * Envoie d'une requete de login et récupération du cookie
                 */
                HttpWebRequest req_Login = (HttpWebRequest)HttpWebRequest.Create(URL_Login);
                req_Login.CookieContainer = cookieContainer;
                req_Login.Method = "POST";
                req_Login.ContentType = "application/x-www-form-urlencoded";
                ASCIIEncoding encoding = new ASCIIEncoding();
                byte[] data = encoding.GetBytes("...");
                req_Login.ContentLength = data.Length;
     
                Stream stream = req_Login.GetRequestStream();
                stream.Write(data, 0, data.Length);
                stream.Close();
     
                HttpWebResponse rep_Login = (HttpWebResponse)req_Login.GetResponse();
     
                //rep_Login.Close();
     
                /*
                 * Accès à la page demandée
                 */
                string URL = UrlDomaine + ".../my_votes.asp";
     
                HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(URL);
                req.CookieContainer = cookieContainer;
                req.Method = "GET";
     
                HttpWebResponse rep = (HttpWebResponse)req.GetResponse();
     
                ProcessStartInfo sInfo = new ProcessStartInfo(rep.ResponseUri.ToString());
                Process.Start(sInfo);
    Quand je debug mon applic, visiblement le cookie container est comme il doit être.
    Le problème se situerait donc au niveau du Process.Start...
    Comment puis-je faire pour lui passer le cookie?

    Merci d'avance.

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    et ca donne quoi ton truc. tu loggues l'utilisateur ou pas?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Par défaut
    et ca donne quoi ton truc. tu loggues l'utilisateur ou pas?
    D'après ce que je peux voir au sniffer, oui.

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    alors c'est bon. où est le problème?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProcessStartInfo sInfo = new ProcessStartInfo(rep.ResponseUri.ToString());
    Process.Start(sInfo);
    Tout va bien jusque ces lignes de codes là...

    En fait je fais les requetes précedentes pour avoir le cookie qui me permet d'accéder aux pages du site sans me logguer.

    Le problème c'est que quand j'exécute le Process avec l'URL où il devrait aller, le cookie lui n'est pas transmis ce qui me donne dans le navigateur web la page de login.

    Comment puis-je passer le cookie ou du moins faire en sorte que IE ou autre puisse accéder à ce cookies et ainsi accéder directement à la page demandée?

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    bah c'est ce que je disais passe les données cryptées à ton adresse et c'est la page qui construit le cookie, loggue la personne et qui redirige vers la bonne page ensuite.

Discussions similaires

  1. C# - Transferer cookie d'un CookieContainer vers le browser
    Par kalikut dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 20/07/2014, 13h13
  2. [PHP 5.2] [Cookies] utilisation de différente session par browser
    Par DeeVoiD dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2009, 14h04
  3. Les cookies 3° !!!
    Par Ph. B. dans le forum XMLRAD
    Réponses: 6
    Dernier message: 28/01/2003, 18h13
  4. [XMLRAD] Cookies pour login
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 9
    Dernier message: 23/12/2002, 17h47
  5. Cherche composant Web Browser indépendant
    Par lancelot69 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 31/07/2002, 11h14

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