IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Response.Redirect() impossible dans Page_Load ou Page_PreRender ?


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut Response.Redirect() impossible dans Page_Load ou Page_PreRender ?
    Bonjour à tous,

    Tout est dans le titre : est-ce normal que Response.Redirect() ne fonctionne pas dans les événements de Page ?

    Vu que sur Firefox, j'ai cette erreur :
    La page n'est pas redirigée correctement. Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas. La cause de ce problème peut être la désactivation ou le refus des cookies.
    Je suppose qu'il faut activer les cookies sur mon website sur Visual Studio. Mais comment ? Quelqu'un peut-il me mettre sur la voie ?

    Merci d'avance de votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Je viens de voir que si je mets une URL différente de celle en cours que ce soit dans Load ou PreRender, Response.Redirect() fonctionne.

    En fait, j'utilise des Session. Et une fois que la session courante est expirée, j'aimerais que ça soit redirigé sur la même adresse.

  3. #3
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Salut!

    Le paramètre URL que tu passes a la méthode, elle est relative ou absolue?

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Je sais plus la différence entre les deux. Mais je pense qu'elle est relative :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("~/MyPanel/Home.aspx")
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("/cms/MyPanel/Home.aspx")

    EDIT : Ça c'est l'URL de la page courante, pour les autres adresses, ça marche nickel.

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 131
    Par défaut
    est ce que ton fichier dans lequel tu fais appelle a ce response.redirect est dans le meme repertoire que home.aspx ?

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Non, en fait c'est dans le code-behind d'une Master Page que je fais ça. Mais j'ai essayé aussi "Response.Redirect("~/MyPanel/About.aspx") et ça fonctionne, et pourtant "Home" et "About" sont dans le même répertoire.

    Ou alors c'est parce que seule "Home" hérite de ma première Master Page (autrement dit celle dans laquelle j'utilise "Response.Redirect()") et que les autres pages héritent de la deuxième Master Page que ça ne fonctionne pas ?

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Personne ne voit pour mon problème ?

    En fait, c'est pour rediriger vers la même page que ça coince...

  8. #8
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut Juju54350
    Essayer pour voir, au lieu de Response.Redirect(url) met ResolveUrl(url).

  9. #9
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Je viens d'essayer dans le Load, mais ça change rien que ce soit avec une autre page ou la page courante.

    Il n'y aurait pas de rapport avec les Master Pages ?

  10. #10
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect(ton_url, false);

  11. #11
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Tu l'as mis dans l’événement Load du MasterPage, tu disais. Parce que si c'est le cas tu aura une boucle infini car l’événement Load sera toujours appelés à chaque exécution de Response.Redirect(url), vu que ton Home.aspx "herite" du MasterPage.

  12. #12
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Même erreur qui survient et on m'a éclairé sur ce point.

    Ça tournerait en rond dans le Load de ma Master Page : vu que ma Session est toujours nulle sur la même page, ça redirige à chaque fois.


    EDIT : Je viens de voir ton message Ramajb. Il faut donc que je trouve un autre moyen.

  13. #13
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Si tu veux une redirection à la perte de la session du devra modifier ton web.config, je t'invite à consulter le lien ci-dessous.

    Exemple:
    <authentication mode="Windows">
    <forms loginUrl="Default.aspx" defaultUrl="Default.aspx" slidingExpiration="true" protection="Encryption" timeout="120" />
    </authentication>
    http://msdn.microsoft.com/en-us/library/1d3t3c61.aspx

  14. #14
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Intéressant mais le problème c'est que je possède déjà quelque chose dans "authentication" et que si je l'enlève ou le modifie, mon projet ne démarre pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <authentication mode="Forms">
          <forms loginUrl="CMSPages/logon.aspx" defaultUrl="Default.aspx" name=".ASPXFORMSAUTH" timeout="60000" slidingExpiration="true"/>
        </authentication>
    En fait, mon website a été créé via Kentico CMS qui est un éditeur de sites web. Et cette ligne a été automatiquement créée.

  15. #15
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Si la solution que propose CrashAngel ne te conviens pas, alors que je la trouve mieu adapté a ton problème, je te propose la suivante:
    - créer une page aspx intermédiaire (Switch.aspx)
    - si session timeout dans l'evt Load de ta MasterPage, faire une redirection sur la nouvelle page.
    - dans l'evt load du Switch.aspx, tu crée une variable persistante contenant une valeur. Ensuite tu fais une redirection vers Home.aspx.
    - dans l'evt Load du MaspterPage, tu fais une genre de check :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if( Check_Session==null || Check_variable_persistante==null)
    {
         redirection vers Switch.aspx;
    }
    En espérant t'avoir aidé.

  16. #16
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    En fait, tu veux que je passe par une page intermédiaire pour rediriger vers la Master Page ?

    Bien sûr, je dois trouver comment checker quand la session expire dans le Load de ma Master Page pour pouvoir rediriger vers Switch.aspx.

  17. #17
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    En fait, tu veux que je passe par une page intermédiaire pour rediriger vers la Master Page ?
    Oui, passe par une page intermédiaire. De là, tu peux appeler Home.aspx (derrière c'est le MasterPage qui s’exécute le premier).

    Bien sûr, je dois trouver comment checker quand la session expire dans le Load de ma Master Page pour pouvoir rediriger vers Switch.aspx.
    Ne cherche pas loin, tu as déjà le moyen de vérifier l'expiration de la session courante.

    Je viens de voir que si je mets une URL différente de celle en cours que ce soit dans Load ou PreRender, Response.Redirect() fonctionne.

    En fait, j'utilise des Session. Et une fois que la session courante est expirée, j'aimerais que ça soit redirigé sur la même adresse.

  18. #18
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Oui mais existe-t-il un moyen en C# de voir si la session expire, car on m'a dit que je pouvais faire ça avec Javascript mais après j'y connais pas grand-chose dans ce langage.


    EDIT : Mais si je redirige vers Switch et après vers Home, ce ne sera pas une réaction en chaîne ?

  19. #19
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Pas du tout, le Switch.aspx, tu le met indépendamment de la masterpage.
    Imagine le flow suivant:
    1- première fois tu lance l'application, pas de soucis car tu as ta session active
    2- la session expirée, toute tentative de navigation a partir d'une page (lié au masterpage) se voit rediriger vers Switch.aspx ( car session null).
    3- Switch.aspx initialise la valeur de la variable_persistante (donc non null). Et redirige vers Home.aspx après.
    4- Arrivée dans Load du Master Page, on verifie la codition si variable_persistante==null (faux dans le cas courant) donc il n'y a plus de redirection. L’exécution se poursuit et finalement on arrive a la page Home.aspx.

  20. #20
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Par défaut
    Ok, si je comprends bien :

    - la session expire
    - redirection vers Switch.aspx dans le Load de la Master Page
    - après je ne vois pas ce que la "variable persistante" contiendrait
    - si cette variable est nulle, il n'y a plus de redirection, mais il faut bien qu'au final je redirige vers la page d'accueil

    Donc je suis un peu perdu au final

Discussions similaires

  1. Response.redirect vers une page aspx dans une dll
    Par Marc_27 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 27/05/2015, 17h35
  2. [Débutant] Response.Redirect marche dans un code mais pas ailleurs
    Par kryptong dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 21/03/2013, 10h09
  3. Response.Redirect dans une fonction dans une classe
    Par jpower dans le forum ASP.NET
    Réponses: 14
    Dernier message: 24/08/2007, 09h45
  4. Réponses: 3
    Dernier message: 17/06/2004, 16h32
  5. redirection impossible => error 500 !
    Par alfigor dans le forum ASP
    Réponses: 4
    Dernier message: 26/04/2004, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo