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 :

Redirection d'un Login dans un UpdatePanel


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Redirection d'un Login dans un UpdatePanel
    Bonjour à tous.

    Je pense que mon souci vient du fait de l'UpdatePanel que je n'arrive pas à bien gérer. Mais là, je sèche un peu.

    Alors présentons le truc simplement : j'ai mis un contrôle Login dans un UpdatePanel de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <ajax:UpdatePanel ID="upSing" runat="server" ChildrenAsTriggers="true" UpdateMode="Always" RenderMode="Inline">
        <Triggers>
            <ajax:AsyncPostBackTrigger ControlID="lbSign" EventName="Click" />
        </Triggers>
        <ContentTemplate>
            <div id="divFondSign" runat="server" style="display:none;" class="FondOpaque">
            <div id="divDevantSign" class="DivSignIn">
            <asp:LinkButton ID="lbCloseLogin" runat="server" Text="Close"></asp:LinkButton>
            <asp:Login ID="log" runat="server" 
                MembershipProvider="MemberShipHashed"
                VisibleWhenLoggedIn="false"
                >
            </asp:Login>
            </div>
            </div>
        </ContentTemplate>
    </ajax:UpdatePanel>
    A l'inscription les utilisateurs sont flaggués sur Approved = False.
    Donc cela déclenche une erreur lors de la tentative de connexion.
    Pour capter cette erreur, habituellement, c'est lorsque je fais sans UpdatePanel, je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Protected Sub log_LoggingIn(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles log.LoggingIn
            Try
                Dim u As MembershipUser = Membership.GetUser(log.UserName, False)
                If Not u.IsApproved Then
                    Response.Redirect("/Navigation/Confirmation.aspx?prov=log")
                End If
     
            Catch ex As Exception
                Outils.Logage(ex.Message)
            End Try
        End Sub
    Donc ça marche bien quand il n'y a pas d'UpdatePanel
    Là, vu que je tiens à mon UpdatePanel pour des questions d'ergonomie et parce que j'ai pas le choix, je dois changer la méthode de redirection. Pour l'instant, ça boucle sur la même page, rien de plus.

    Si je change le Response.Redirect par ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterStartupScript(Me.GetType(), "redirect", "location.href = '/Navigation/Confirmation.aspx?prov=log'", True)
    Il me met le message d'erreur d'identification et ne redirige pas.

    Alors je cherche pourquoi il ne veut pas me rediriger, mais je trouve pas.

    Avez-vous une idée ?

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    C'est normal que ça ne fonctionne pas. Le contrôle UpdatePanel ne supporte pas le Response.Redirect en mode asynchrone.

    Une solution possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ScriptManager.RegisterStartupScript(this, this.GetType(), "myFunction", "Javascript:specialRedirect();'", true);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <Script language="Javascript">
     
    Function specialRedirect();
    {
    window.location.href = 'NouvellePage.aspx'
    }
    </Script>
    En espérant t'avoir aidé.

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    Citation Envoyé par Nicolas Esprit Voir le message
    Bonjour,

    C'est normal que ça ne fonctionne pas. Le contrôle UpdatePanel ne supporte pas le Response.Redirect en mode asynchrone.
    Ca, j'avais capté, c'est pour ça que je passe par un script et c'est ce que j'explique dans mon exposé.

    J'ai tenté avec ton exemple (qiu est un poil différent du mien) mais ça marche pas mieux. J'ai même poussé le détail un peu plus loin pour voir avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "redirect", "Javascript:specialRedirect();'", True)
    dans le test de l'évènement LoggingIn

    Et ça en bas de mon code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script language="Javascript" type="text/javascript">
     
    Function specialRedirect();
    {
    alert('coucou')
    window.location.href = '/Navigation/Confirmation.aspx?prov=log'
    }
    </script>

    Il ne m'affiche pas 'coucou' et me colle le mesasge d'erreur d'identification du contrôle Login.
    Par contre, au chargement de la page il me dit qu'il attend un ";". sauf qu'il ne me dit pas où. Et vu que je suis pas doué en Jscript, je vois pas ça lui manque.

    Vois tu le souci ?

  4. #4
    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
    Le js, c'est comme le c#, tu dois finir toute tes instructions par un ;

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ok, vu et compris. Donc jai corrigé en faisant cela (une majuscule aussi posait un souci)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script language="Javascript" type="text/javascript">
     
    function specialRedirect()
    {
    alert('biloute');
    window.location.href = '/Navigation/Confirmation.aspx?prov=log';
    }
    </script>
    Donc plus d'erreur au chargement de la page. Mais ça redirige toujours pas, hi hi hi.
    Et je vois toujours pas de "coucou" arriver sur ma page, donc j'en déduis qu'il ne passe pas dans la function. Et la question est : pourquoi ?

    Et là, je cherche mais je en trouve pas. D'autant qu'il me fait tous les trucs que je lui demande dans le test. Pour vérifier je me suis amuser à lui demande de m'enregistrer un truc dans la base ou dans mon fichier de log et pas de souci, il le fait bien, sans souci. J'arrive même à changer dynamiquement le message d'erreur du Login.
    En fait, le seul qu'il ne me fait pas c'est la redirection.

  6. #6
    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
    Mets ton code dans le OnAuthenticate plutot que OnLoggingIn

  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Même motif, même punition. Toujours pas de rédirection ni de alert "coucou"

  8. #8
    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
    Bizarre, j'ai testé rapido chez moi et ça fonctionne

  9. #9
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Peux tu me poster tout ton code, que je trace les différences ?

Discussions similaires

  1. Redirection URL Non visible dans la barre d'adresse
    Par domileg dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2006, 09h02
  2. Réponses: 2
    Dernier message: 26/05/2006, 00h04
  3. Réponses: 3
    Dernier message: 10/05/2006, 21h37
  4. Redirection PHP autre que dans un Reader
    Par gwen-al dans le forum Langage
    Réponses: 5
    Dernier message: 18/01/2006, 12h25

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