begin process at 2012 02 14 01:53:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

Autre

 > 

Response.Redirect et Ancrage


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

Response.Redirect et Ancrage

mercredi 27 mai 2009 à 12:29:24 | Response.Redirect et Ancrage

billou_13

Membre Club
Bonjour,

Alors voila, je vous expose mon problème. Mon site asp.net est "AJAXisé" (permettez moi l'expression).
Afin de conserver une URL dynamique lors des différents chargements, j'ai joué avec l'ancrage.
Ie: ma page "Default.aspx#page=1" affiche dynamique la page 1
Un clic sur la page 2 (lien href="Default.aspx#page=2) affiche dynamiquement la page 2
etc...

Jusque là, tout va bien.

Mais j'ai un problème aujourd'hui lorsque la personne demande directement la page "Default.aspx#page=2" sans s'être connectée au préalable (j'ai un système d'authentification .net).
Le système d'authentification Asp.Net redirige bien l'utilisateur vers la page: "Login.aspx?ReturnUrl=Default.aspx#page=2"

Et là, c'est le drame...

Lorsque l'utilisateur s'authentifie, il est redirigé vers "ReturnUrl" qui est égal à "Default.aspx" et non "Default.aspx#page=2".
Pourquoi ? parce que l'ancrage n'est pas "posté" au serveur. Donc le serveur ne sait pas quel est la vrai adresse de redirection.


J'ai donc plusieurs solutions à ce problème mais je ne sais pas techniquement comment le faire (à part une que je trouve compliqué):
1) J'arrive à faire un Response.Redirect(...) qui ne me supprime pas l'ancrage.
Car, après tout, comment cela se fait que le ReturnUrl est bon lorsque Asp.net redirige l'utilisateur vers Login.aspx ??? Il doit bien lui faire un genre de Response.Redirect(...) en lui disant de conserver l'ancrage ??? J'en sais rien.

2) J'arrive à me brancher au niveau de l'appel à "Default.aspx#page=2" et à changer temporairement l'adresse par un encodage maison ^^ (ie remplacement de # par $ ou autre)

3) Je fais un block javascript (startup) au lieu de faire un response.redirect qui prend en compte l'url avec l'ancrage et redirige automatiquement l'utilisateur.


J'aimerais beaucoup faire la solution 1 mais je ne sais pas comment. Je m'en remet à vous !
Je n'aime pas la solution 2.
Je sais faire la solution 3 mais je n'aime pas trop.


Merci à vous et bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
mercredi 3 juin 2009 à 14:04:17 | Re : Response.Redirect et Ancrage

billou_13

Membre Club
Réponse acceptée !
Bonjour à tous,

Alors, j'ai mis en place une nouvelle solution pour répondre à mon besoin et cela fonctionne parfaitement.
L'idée: je place un champ caché dans la page de login qui verra sa valeur initialisée par l'ancrage de ma page.

L'implémentation:
Code aspx:
<asp:HiddenField ID="hdnHash" runat="server" />

Code behind (cs):
protected void Page_PreRender(object sender, EventArgs e)
{
   //Enregistrement du javascript qui exécuté côté client, remplit automatique la valeur du contrôle "hdnHash"
   string javaScript = string.Format("document.getElementById('{0}').value = window.location.hash;", hdnHash.ClientID);
   Page.ClientScript.RegisterStartupScript(this.GetType(), "LoginControlScript", javaScript, true);
}

//Récupération de la page pour redirection après authentification ok
private string GetRedirectUrl()
{
   string returnUrl = Request["ReturnUrl"];

   if (string.IsNullOrEmpty(returnUrl))
   {
      return FormsAuthentication.DefaultUrl;
   }
   else
   {
      return string.Concat(returnUrl, hdnHash.Value);
   }
}

//Et redirection...
Response.Redirect(GetRedirectUrl(), false);

Tout simple,

Voila,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------


Cette discussion est classée dans : page, aspx, response, ancrage, default


Répondre à ce message

Sujets en rapport avec ce message

Récupérer le nom de la page en cours ? [ par billou_13 ] Voila une petite question toute bête.J'ai quelques idées sur le sujet mais je sais pas si ce sont les meilleures.En fait, je vourdrais juste récupérer Accés aux données [ par maken ] Bonjour, à tous et Merci de votre aide!! car je galére en ce moment. Voivi ma question:J'ai mis en  place un site avec une authentification par formul probleme avec loginstatut [ par angel7891 ] salut, je travaille avec asp2.0 et jai un probleme de deconnexion,j'utilise un controle login statut et je met dans la propriété "LogOutUrl" la page d comment trouver la page qui vient d'appeler celle-ci?? [ par 76julien ] Bonjour à tous, ma question est la suivante :il y a t il une propriété qui permet de savoir quelle est la page qui appelle le chargement de celle-ci ? Impossible de charger le type '_Default' [ par erazion ] Bonjour, j'ai un soucis en prog VB. En effet, lorsque je veux charger ma page "Default.aspx", un message d'erreur "Impossible de charger le type '_Def Culture & UICulture avec MasterPage [ par fabienfs ] Bonsoir, Je tente de traduire mon site en plusieurs langues grâce au système de Culture et UICulture avec des LocalResource et GlobalResource (fichi Problème de WebUserControl Dynamique [ par skyaero ] Bonjour,Dans ma page Default.aspx, j'ajoute dynamiquement un WebUserControl par le code suivant situé dans le Page_Init de ma page Default.aspx :ontro plusieurs updatePanels dans la meme page ? [ par foufoulol ] Bonjour, dans ma page default.aspx j'ai un updatepanel qui contient un menu contenant plusieurs boutons. Je veux que chaque bouton m'ouvre une gridvie Creation Fichier JS "à la volée" [ par Alexis35 ] Bonjour, Voilà, je souhaite pouvoir appeler des fichiers JS dynamiquement dans une de mes pages. Fichiers que je vais créer suivant les paramètres de Problème temps d'attente sur un window.showmodaldialog lorsque la page aspx n'est pas compilée [ par vinzemuls ] Bonjour, voilà je dois ouvrir une page aspx gràace à un showmodaldialog. Mais voilà lorsque la page n'est pas encore compilé côté serveur, lorsque j


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,122 sec (3)

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