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 :

Execution de javascript [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Points : 227
    Points
    227
    Par défaut Execution de javascript
    Bonjour,

    j'ai un bouton dans un page html qui me permet de me connecter sur requête LDAP à notre domaine. Lors du clique, si la connexion est réussie mon alert javascript s'affiche bien
    pour informer l'utilisateur qu'il est bien connecter. Par contre dans le cas où la connexion est un échec, le JavaScript ne s’exécute pas.

    voici le code behind :
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles btCnx.Click
            If Authenticate(txtNomUsr.Text, txtMdp.Text, System.Configuration.ConfigurationManager.AppSettings("domainName")) Then
                Response.Write("<script type='text/javascript' language=javascript>window.onload = function() {alert('Connexion réussie.');};</script>")
            Else
                Response.Redirect("connection.aspx")
                Response.Write("<script type='text/javascript' language=javascript>window.onload = function() {alert('Échec de l'authentification :" & ErrorMsg & "');};</script>")
            End If
        End Sub

    dans mon aspx :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div id ="LogonScreen">
                <asp:Label ID="Label1" runat="server" Text="Nom d'utilisateur"></asp:Label> &nbsp;&nbsp;
                <asp:TextBox ID="txtNomUsr" runat="server"></asp:TextBox><br />
                <asp:Label ID="Label2" runat="server" Text="Mot de passe"></asp:Label> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:TextBox ID="txtMdp" runat="server" TextMode="Password"></asp:TextBox>
                <br />
                <asp:Button ID="btCnx" runat="server" Text="Valider" />
            </div>

    Que dois-je faire pour que l'alert s affiche aussi en cas d'échec de connexion ?
    D'avance merci.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par dharkan Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            Else
                Response.Redirect("connection.aspx")
                Response.Write("<script type='text/javascript' language=javascript>window.onload = function() {alert('Échec de l'authentification :" & ErrorMsg & "');};</script>")
            End If
    Le problem dans ton Else, c'est que quand tu appelles Response.Redirect, cela redirige directement l'utilisateur donc tout ce qui est apres (en l'occurence le Response.Write) ne sera pas execute. En interne, Response.Redirect appelle Thread.Abort qui lance une System.Threading.ThreadAbortException, ce qui a pour effet de stopper immediatement le thread en cours.

    Ce que tu peux faire, c'est soit ajouter ton message d'erreur en Query String, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Else
                Response.Redirect("connection.aspx?msg=" & HttpUtility.UrlEncode("Échec de l'authentification :" & ErrorMsg))
            End If
    Puis recuperer le Query String pour afficher le message sur ta page. Bien sur cela n'est pas recommande, car l'utilisateur pourra facilement modified le message a la main, et si ton message est trop long ca peut causer quelques soucis...

    Une meilleure solution est de passer ton message via la Session par exemple, puis de le recuperer dans ta page connection.aspx pour l'afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            Else
                Session("Message") = "Échec de l'authentification :" & ErrorMsg
                Response.Redirect("connection.aspx")
            End If
    Et dans connection.aspx quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tonLabel.Text = Session("Message")
    Enfin, je t'invite a te documenter sur l'utilisation correcte de Response.Redirect : Correct use of System.Web.HttpResponse.Redirect.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Points : 227
    Points
    227
    Par défaut
    Bonjour DotNetMatt,

    Merci pour ta réponse.
    J'ai mis en place la solution que tu préconisais. et lire la doc sur le Response.redirect que tu m'a mis en lien.

    Cordialement.

    Citation Envoyé par DotNetMatt Voir le message
    Une meilleure solution est de passer ton message via la Session par exemple, puis de le recuperer dans ta page connection.aspx pour l'afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            Else
                Session("Message") = "Échec de l'authentification :" & ErrorMsg
                Response.Redirect("connection.aspx")
            End If
    Et dans connection.aspx quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tonLabel.Text = Session("Message")
    Enfin, je t'invite a te documenter sur l'utilisation correcte de Response.Redirect : Correct use of System.Web.HttpResponse.Redirect.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MooTools] Execution du javascript avec mootools
    Par alas70 dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 13/03/2007, 11h36
  2. [AJAX] Executer du javascript apres transfo XSL
    Par Clercq dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/11/2006, 16h59
  3. Réponses: 6
    Dernier message: 21/07/2006, 15h48
  4. [Struts][Validator] : execution du javascript
    Par anaon dans le forum Struts 1
    Réponses: 6
    Dernier message: 12/05/2006, 13h35
  5. arreter l'execution du javascript
    Par elendrim dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/03/2006, 11h17

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