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

Signaler
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011
-
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011
-
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

Messages postés
14804
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 septembre 2020
92
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...
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

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();
Messages postés
14804
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 septembre 2020
92
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...
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

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
Messages postés
14804
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 septembre 2020
92
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...
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

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 !!
Messages postés
14804
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 septembre 2020
92
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...
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

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
Messages postés
14804
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 septembre 2020
92
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...
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

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"
Messages postés
14804
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 septembre 2020
92
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...
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

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
Messages postés
14804
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 septembre 2020
92
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...
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

OKay!

En tout cas merci! je vais commencé par recherché le navigateur lol
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

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
Messages postés
14804
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 septembre 2020
92
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...
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

DOmmage, Merci!!
Messages postés
11
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

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