Problème récupération URL de la page courante du navigateur

bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011 - 27 sept. 2011 à 10:34
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011 - 27 sept. 2011 à 19:00
Bonjour tout le monde !

Voilà j'ai un petit problème, le contexte est de récupérer une URL sur une page internet en cour du navigateur, pour ensuite la comparer!

Hors j'ai un soucis dans la méthode suivante !

        static string url = string.Empty;

        public static void RecupUrl()
{
        if (HttpContext.Current != null)
        {
            url = HttpContext.Current.Request.Url.ToString();
        }
        else
            Console.WriteLine("NULL");
        }


HttpContext.Current est null, et je ne comprend pas pourquoi..

Si quelqu'un a une idée, je suis totalement bloqué!
Merci d'avance pour vos réponses!

18 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
27 sept. 2011 à 11:06
Hello,
Est-ce que ma source peut t'aider? Elle ne fonctionne que pour IE cependant..


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 11:36
Merci, cela me guide un peu hors l'application concerne n'importe quel navigateur par défaut,Ce qui va me posé quelque soucis

Est-ce qu'il faut que je crèe une méthode pour rechercher le navigateur par défaut ou alors le code suivant n'en a pas besoin?

HttpContext.Current.Request.Url.ToString();
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
27 sept. 2011 à 13:59
Bah, HttpContext est plutôt à utiliser côté serveur, comme le montre l'exemple en bas de page.
Ce que tu cherches à faire, du moins, ce que j'ai compris, est un mouchard qui récupère l'url courante d'un navigateur web. Cela ne se fait pas comme ça.
Ma source, par exemple, regarde s'il y a une instance d'IE de lancer. Si oui, elle demande à la barre d'adresses son contenu. Il n'en est pas de même pour les autres navigateurs...

Quel est le but de ton développement, exactement?


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 14:36
Daccord!

Le programme consiste à lancer un site web avec le login et le mot de passe attribué!
Tout ceci fonctionne.
Hors lorsque l'utilisateur voudra changer de mot de passe sur le site il faut que mon programme le sache, c'est pour cela que je veux récupérer l'url du site et la comparer pour savoir si le mot de passe a changé ou non.
Le programme pourra ainsi modifier le mot de passe sans que l'utilisateur n'est à le faire.

A moins que tu es une autre solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
27 sept. 2011 à 14:40
Tu veux dire que l'url contient les identifiants de l'utilisateur?? ça craint, ça...
Le programme pourra ainsi modifier le mot de passe sans que l'utilisateur n'est à le faire.

ça s'appelle du piratage
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 14:58
LOL non pas du tout, l'utilisateur entre son login et son mot de passe via une form windows, qui sont ensuite enregistrer dans un XML sur son bureau. Une fois le fichier XML présent la form ne s'ouvre plus! Moi je veux juste éviter qu'il supprime le .exe et le XML lorsqu'il change de mot de passe sur le site internet.

Cette application est dans le cadre de mon travail !!
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
27 sept. 2011 à 15:44
Je sais que je suis fatigué...mais tu m'as perdu, là...
Tu t'authentifie via une form -> ok, mais dans quel contexte?
Tu stockes tes infos -> ok mais encryptées j'espère...
Lors d'une nouvelle fois (??), tu vérifies les infos de connexion, si elles sont présentes, tu n'affiches pas la popup d'authen -> mouais...là, déjà, je pige toujours pas le contexte mais bon, admettons
Tu peux modifier ton mot de passe via une interface web -> ok
Tu voudrais détecter cette url dans un navigateur pour mettre à jour tes identifiants de connexion -> là, ça coince.

Plusieurs problèmes:
- tu dis que l'utilisateur peut modifier son mot de passe via interface web. Ne peut-il pas s'authentifier via ce moyen également?
- tu stockes tes infos dans un XML: pour peu que les infos soient stockées en clair, bonjour la sécurité. De plus, rien n'empêche l'utilisateur de supprimer ce fichier
- à quoi correspond le .exe? la form windows? quel est le contexte?
- tu dis que tu peux te connecter via la form. Mais, la form, elle vérifie comment la véracité des infos?
- en quoi le fait de changer de mot de passe supprimerais ton exe?

Enfin, je ne penses pas que tu puisses récupérer les infos de connexion suite à une mise à jour de l'utilisateur. Généralement, l'interface qui te permet de le faire est en HTTPS, donc sécurisé. A moins d'aller "écouter" les modifications des champs texte de l'interface, mais c'est moyen, moyen...

Bref, à mon avis, le mieux que tu puisses faire c'est:
- s'authentifier avec les infos su fichier
- si ça ne marche pas, tu affiches la popup

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 16:21
On va simplifié le problème lol
Le soucis n'est pas le programme mais cette partie juste cette partie, l'url à retrouver sera celle de google.

using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace ConsoleApplication1
{

    class Program : System.Web.UI.Page
   {  
         static string url = string.Empty;

         static public string recup(HttpRequest rec)
         {
             url = rec.Url.ToString();
             return url;
         }

          static  void Main(string[] args)
        {
            
                string adr = "www.google.fr";
                Process.Start(@adr);
                              
                string test = recup(Request);
             
                Console.WriteLine(test);
                Console.Read();
           }
    }
}



J'ai l'erreur "An object reference is required for the non-static field, method, or property 'System.Web.UI.Page.Request.get' " pour la ligne :
string test = recup(Request);


Voili-Voila l'application a un petit soucis!
Si vous pouvez m'aidez??
Je suis bloqué, Merci à vous
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
27 sept. 2011 à 16:28
Tu es bien conscient que ton objet Request n'est déclaré nul part?


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 16:40
Oui c'est exact

Je suis débutant dans c#, et je ne comprend pas comment le déclaré car il appartient à
"System.Web.UI.Page"
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
27 sept. 2011 à 16:46
C'est un objet de type HttpRequest, au mettre titre que ta string.
Mais je vois pas trop l’intérêt du code, là.


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 17:01
Merci!!!

Enfaîte j'essai de comprendre comment on récupère l'url d'une page internet (ici google) pour ensuite l'appliquer à mon code.

La je peux construire mais quand je la lance j'ai l'erreur qui ma suivi toute la journée lol

static public string recup(HttpRequest rec)
         {
             url = rec.Url.ToString();
             return url;
         }


A la ligne :
url = rec.Url.ToString();
j'ai l'erreur suivante :
NullReferenceExeption was unhandled - La référence d'objet n'est pas définie à une instance d'un objet.

En gros je ne comprend pas du tout pourquoi elle revient à chaque fois!
Avec
 Httpcontext.Current.Request.Url
je l'avai déjà car Httpcontext.Current valait NULL
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
27 sept. 2011 à 17:11
Je t'ai dit que HttpContext est à utiliser côté serveur, avec de l'ASP.Net quoi. Pas pour faire une appli cliente.
Tu ne peux pas le faire comme ça, point. Pour récupérer l'url courante dans un navigateur, il te faut:
1. savoir quel navigateur est lancé
2. comprendre la hiérarchie de composant de ce navigateur (pour IE, voir ma source)
3. envoyer le message adéquat au composant adéquat afin de récupérer l'url


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 17:14
OKay!

En tout cas merci! je vais commencé par recherché le navigateur lol
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 17:19
ET dernière question, j'ai parler d'un fichier XML créé par le .exe.
Est il possible que le fichier créé soit attaché à l’exécutable?
J'aimerai que quand l'utilisateur supprime l’exécutable le fichier XML créé se supprime aussi!

Merci d'avance
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
27 sept. 2011 à 17:20
Ah non, ça, ce n'est pas possible.


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 17:23
DOmmage, Merci!!
0
bugg777 Messages postés 11 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 27 septembre 2011
27 sept. 2011 à 19:00
Me voici à la recherche du navigateur par défaut, j'ai l'adresse mais pas le moyen de transport voici le code :
            RegistryKey rKey1 = Registry.CurrentUser;
            RegistryKey rKey2 = rKey1.OpenSubKey(@"HKEY_CLASSES_ROOT\\http\\shell\\open\\command");
            string strKeyValue = rKey2.GetValue("Password").ToString();


Encore une fois j'obtient l'erreur "NullReferenceExeption was unhandled - La référence d'objet n'est pas définie à une instance d'un objet."

Dsl de mes erreurs !!! Merci d'avance
0
Rejoignez-nous