begin process at 2010 09 04 09:44:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

URL Rewriting

 > 

Faire suivre les paramètres GET


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Faire suivre les paramètres GET

mardi 21 avril 2009 à 16:01:12 | Faire suivre les paramètres GET

thiosyiasar


Bonjour,

Si on appel la page d'accueil de mon site avec un paramètre Get, je dois le faire suivre sur tous les liens du site.
Ce parametre doit durer meme si la session tombe.

Pour eviter de me taper toutes les url de mon site je suis parti sur la solution d'une classe implémentant IHttpModule. Et se basant sur l'UrlRefferer

- Server.Transfert() transmet les paramètres postés mais ne fait pas apparait le paramètre Get ajouté (utilisation l'url refferer pour le liens suivant)
- Response.Redirect() ajoute bien le paramètre GET mais pas les données postées...

Si quelq'un avait une idée qui fonctionne cela me sauverait d'un chercher / remplacer sur une centaine de page....
Voici le code que j'utilise

Merci

<code>
publicclassContextTrackerHttpModule : IHttpModule
{
publicvoid Init(HttpApplication context)
{
  context.PreRequestHandlerExecute += newEventHandler(HttpApplication_PreRequestHandlerExecute);
}

privatevoid HttpApplication_PreRequestHandlerExecute(object sender, EventArgs e)
{
 HttpApplication oApplication = (HttpApplication)sender;
 IHttpHandler oHandler = oApplication.Context.Handler;
 if (oHandler isPage)
{
  Page oPage = (Page)oHandler;
  oPage.PreInit +=
newEventHandler(AllPage_PreInit);
}
}

privatevoid AllPage_PreInit(object sender, EventArgs e)
{
// Lecture de la page
Page oPage = (Page)sender;
HttpRequest oRequest = oPage.Request;

if (oRequest.UrlReferrer != null)
{
// Lecture du context dans l'url ou l'url pr,c,dente
string sCurrentContext = GetUriParamValue(oRequest.Url, "ctx");
string sReferrerContext = GetUriParamValue(oRequest.UrlReferrer, "ctx");
if (!string.IsNullOrEmpty(sReferrerContext) && string.IsNullOrEmpty(sCurrentContext))
{
oPage.Server.Transfer(oRequest.Url.AbsolutePath + "?ctx=" + sReferrerContext, true);
}
}
}
privatestring GetUriParamValue(Uri uri, string prmName)
{
NameValueCollection oPrms = HttpUtility.ParseQueryString(uri.Query);
return oPrms[prmName];
}
}
</code>




Nico
mardi 21 avril 2009 à 23:36:17 | Re : Faire suivre les paramètres GET

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonsoir,

je ne comprend pas ce que tu essayes de faire avec HttpModule, je ne comprend d'ailleurs pas le but de ce que tu essayes de faire.
Pourquoi ne pas conserver la variable en session ?


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
mercredi 22 avril 2009 à 10:56:00 | Re : Faire suivre les paramètres GET

thiosyiasar

Salut Cyril,

Le probleme :

J'ai un site qui fonctionne pour un client A.
Je dois faire des modifications visuels et fonctionnelles mineures pour un client B.
Les deux clients se connecterons sur le meme site. Je dois donc ajouter pour le 2eme client un code contextuel.

Session ? Non.
Si le client perd sa session, il doit conserver sont code contextuel pour revenir sur la bonne page d'accueil.

La solution que j'envisage...

Je pense stocker cette infos dans l'url ce qui m'oblige a me retaper tous les liens du site.

Ce que j'essai de faire avec HttpModule (mon code à progressé depuis) c'est de vérifier si il y a un code contextuel dans l'url appelante (Request.UrlReferrer), et si c'est le cas j'utilise RewritePath pour faire suivre le code contextuel.
Cela fonctionne pour les redirect maintenant mais pas pour les liens html de type <a href="..."> (l'url affiché est celle avant modification par RewritePath, donc sans le code contextuel)...

Conclusion

Je ne sais pas si c'est la bonne solution, je suis full open a vos idées.

Faut que j'arrete le dev ? :)
.
A+

Nico
jeudi 23 avril 2009 à 03:12:02 | Re : Faire suivre les paramètres GET

thiosyiasar

P1 c'est si compliqué que ca a faire ???
jeudi 23 avril 2009 à 08:55:29 | Re : Faire suivre les paramètres GET

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour,

Pourquoi ne pas utiliser les cookies ? sinon configurer un sous domaine (pointant vers le memes site IIS) pour l'autre site ?


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
jeudi 23 avril 2009 à 11:40:55 | Re : Faire suivre les paramètres GET

thiosyiasar

Salut,

Etant court sur les délais j'ai utilisé le principe du contexte en get.
J'ai modifié mon gestionnaire de contexte (HttpModule) et il gère tout seul les liens Html.
Par contre pour les redirect coté serveur, je suis obligé d'appeler une méthode qui gère la présence du context


Dommage que je n'ai pas posé la question plus tot...
Les cookies c'est a tester mais je suis plus séduit par la création d'un sous domaine.

Merci

Nico


Cette discussion est classée dans : page, url, get, opage, httpapplication


Répondre à ce message

Sujets en rapport avec ce message

Formulaire, Post , get !!! HELP!!! [:)] [ par glopglop ] Une page Html envoie les resultat d'un formulaire a une page asp. Cette page asp va chercher des informations dans une base de données et affiche un d Plus de la mise page que de l'asp... [ par mikkey ] Bonjour,J'aimerais avoir des informations sur comment intégrer ce genre de sous-page qui ne s'ouvre que lorsque l'on clique dessus ;http://www monsite.com/page.asp?Val=titre_du_fichier_appele [ par lionfromparis ] Comment est ce que l'on construit ce type d'url sachant que le fichier final est un fichier et n'est pas une donnée (donc seul le lien est dans une ba Récupérer l'URL complète [ par FrancoisPignon ] Avec la méthode : Request.ServerVariables("URL"), on récupère le "nom" de la page MAIS comment peut on récupérer l'URL complète de la page à savoir, p asp.net -> include en asp dans une page asp.net [ par fstyle ] Bonjour/soir ...juste une petite question !j'aimerais inclure un fichier asp3.0 (des news) dans une page asp.net j'y connait rien en asp.net mais j'ai stopper le chargement [ par fabiin ] Salut !comment faut t'il faire pour arrêter le chargement d'une page.par exemple ds une condition if, si elle est vrai ben ca n'execute pas la suite d URL distante [ par Ondex ] Salut a tous,quelqu'un connait t'il le moyen de se connecter a ue URL distante sans utiliser de composant.si par exemple je veux recuperer la page htt lire fichier dont le chamin est un URL [ par kut ] Mon probleme est tous simple, je voudrais recupere le contenu d'un page html afin d'y trier des informations que je reutilise par la suite.Je developp Connaitre Url page [ par fabiin ] Salut,voila, je chenge mon site de serveur,donc d'url,...en haut de tt mes pages g un fichier inclu identiquedonc pour pas me faire chier, je pensais Afficher une page à distance [ par GillesWebmaster ] Ben voila, j'aimerais faire une sorte d'include d'une page qui est sur un autre serveur et en php, qui se transformerai en html!!!Merci de me contact


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales