Connaître l'URL d'une application ASP. NET

6 réponses
Avatar
Gilles TOURREAU
Salut tout le monde !

Je voudrais par l'intermédiaire de la programmation obtenir l'URL d'une
application ASP .NET.
Par exemple si j'ai une application qui se trouve sur
http://www.toto.com/rep1/rep2/mon_appli_dot_net
je souhaiterais obtenir cette URL.
J'ai regardé dans Page.Request.Uri mais le problème c'est que quand j'ai des
sous-répertoirs dans mon application, Page.Request.Uri me retourne le chemin
de la page en cours.

Exemple si je suis dans une page à l'adresse :
http://www.toto.com/rep1/rep2/mon_appli_dot_net/rep3/rep/ma_page.aspx
Page.Request.Uri me retourne toujours
http://www.toto.com/rep1/rep2/mon_appli_dot_net/rep3/rep/ma_page.aspx alors
que je voudrais juste http://www.toto.com/rep1/rep2/mon_appli_dot_net

Existe t'il une astuce ou une propriété pour çà ?

Merci par avance de vos réponses !

6 réponses

Avatar
Julien Adam
Server.MapPath("~")

Julien Adam

"Gilles TOURREAU" wrote in message
news:%
Salut tout le monde !

Je voudrais par l'intermédiaire de la programmation obtenir l'URL d'une
application ASP .NET.
Par exemple si j'ai une application qui se trouve sur
http://www.toto.com/rep1/rep2/mon_appli_dot_net
je souhaiterais obtenir cette URL.
J'ai regardé dans Page.Request.Uri mais le problème c'est que quand j'ai


des
sous-répertoirs dans mon application, Page.Request.Uri me retourne le


chemin
de la page en cours.

Exemple si je suis dans une page à l'adresse :
http://www.toto.com/rep1/rep2/mon_appli_dot_net/rep3/rep/ma_page.aspx
Page.Request.Uri me retourne toujours
http://www.toto.com/rep1/rep2/mon_appli_dot_net/rep3/rep/ma_page.aspx


alors
que je voudrais juste http://www.toto.com/rep1/rep2/mon_appli_dot_net

Existe t'il une astuce ou une propriété pour çà ?

Merci par avance de vos réponses !




Avatar
Antoine F.
> Je voudrais par l'intermédiaire de la programmation obtenir l'URL d'une
application ASP .NET.
Par exemple si j'ai une application qui se trouve sur
http://www.toto.com/rep1/rep2/mon_appli_dot_net
je souhaiterais obtenir cette URL.




En regardant simplement la définition de la classe Request, vous remarquerez
je l'espère une propriété 'ApplicationPath' qui comme son nom l'indique, fournit
le chemin de l'application.

Il ne vous reste plus qu'à compléter cette information avec l'hôte saisit dans la
requête et le protocole. Pour les trouver, vous pouvez observer les clés contenues
dans la collection Request.ServerVariables:

foreach(string s in Request.ServerVariables)
{
Response.Write(s + " - "+ Request.ServerVariables[s] + "<br>rn";
}

Vous remarquerez que la clé 'HTTP_HOST' fournit l'url ainsi que la clé
SERVER_PROTOCOL ou encore SERVER_PORT vous permettent de recréer
cette URL.

Dans votre cas, cela donnerait quelque chose du genre:

string url = "http://" + Request.ServerVariables["HTTP_HOST"] + Request.ApplicationPath;

Rien de bien sorcier ; )

.antoine


--

Blog Sécurité Web (Swiss blog about Web Security)
http://www.nxtg.net/is/
Avatar
Antoine F.
> Server.MapPath("~")



Pfiuuu j'ai eu peur! Un instant j'ai cru que vous aviez une solution beaucoup plus
simple à proposer ; )

.antoine
Avatar
Julien Adam
Effectivement c'est l'inverse, j'ai lu un peu vite :)

"Antoine F." wrote in message
news:
> Server.MapPath("~")

Pfiuuu j'ai eu peur! Un instant j'ai cru que vous aviez une solution


beaucoup plus
simple à proposer ; )

.antoine





Avatar
Gilles TOURREAU
C'est pas grave... je te remercie d'avoir proposer une réponse...
En plus c'est bon à savoir cette petite astuce... je me coucherais moins
c.... ce soir...
Cordialement

Gilles

"Julien Adam" a écrit dans le message de
news:%
Effectivement c'est l'inverse, j'ai lu un peu vite :)

"Antoine F." wrote in message
news:
> > Server.MapPath("~")
>
> Pfiuuu j'ai eu peur! Un instant j'ai cru que vous aviez une solution
beaucoup plus
> simple à proposer ; )
>
> .antoine
>
>
>




Avatar
Gilles TOURREAU
Merci pour ta réponse !
Cordialement
Gilles

"Antoine F." a écrit dans le message de
news:
> Je voudrais par l'intermédiaire de la programmation obtenir l'URL d'une
> application ASP .NET.
> Par exemple si j'ai une application qui se trouve sur
> http://www.toto.com/rep1/rep2/mon_appli_dot_net
> je souhaiterais obtenir cette URL.


En regardant simplement la définition de la classe Request, vous


remarquerez
je l'espère une propriété 'ApplicationPath' qui comme son nom l'indique,


fournit
le chemin de l'application.

Il ne vous reste plus qu'à compléter cette information avec l'hôte saisit


dans la
requête et le protocole. Pour les trouver, vous pouvez observer les clés


contenues
dans la collection Request.ServerVariables:

foreach(string s in Request.ServerVariables)
{
Response.Write(s + " - "+ Request.ServerVariables[s] + "<br>rn";
}

Vous remarquerez que la clé 'HTTP_HOST' fournit l'url ainsi que la clé
SERVER_PROTOCOL ou encore SERVER_PORT vous permettent de recréer
cette URL.

Dans votre cas, cela donnerait quelque chose du genre:

string url = "http://" + Request.ServerVariables["HTTP_HOST"] +


Request.ApplicationPath;

Rien de bien sorcier ; )

.antoine


--

Blog Sécurité Web (Swiss blog about Web Security)
http://www.nxtg.net/is/