03 Fév2016
Accès par mot de passe statique
Objectifs:
- Utiliser les contrôles web simples
- Appliquer une mise en forme sur le contrôle Label
Énoncé:
1) Créer une page d’authentification en demandant à l’utilisateur la saisie d’un nom d’utilisateur et un mot de passe (constantes).
Si les identifiants sont corrects afficher dans une boite de dialogue un message de bienvenue, sinon afficher un message d’erreur.
Cas des identifiants corrects :
Cas des identifiants incorrects :
2) Améliorer l’interface en affichant, au-dessous du formulaire, le message de succès en vert et celui d’erreur en rouge.
Cas des identifiants corrects :
Cas des identifiants incorrects :
Question 1:
Code Web Form: AccesMotDePasse1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AccesMotDePasse1.aspx.cs" Inherits="tp1_exelib.AccesMotDePasse1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <h2>Accès par Mot de passe</h2> <div> <asp:Label ID="Label1" runat="server" Text="Nom d'utilisateur: "></asp:Label> <asp:TextBox ID="txtLogin" runat="server"></asp:TextBox> <br /> <br /> <asp:Label ID="Label2" runat="server" Text="Mot de passe: "></asp:Label> <asp:TextBox ID="txtPass" runat="server" TextMode="Password"></asp:TextBox> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="Valider" OnClick="Button1_Click" /> <br /> <br /> <asp:Literal ID="Literal1" runat="server"></asp:Literal> </div> </form> </body> </html>
Code Behind: AccesMotDePasse1.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace tp1_exelib { public partial class AccesMotDePasse1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { if(txtLogin.Text == "exelib" && txtPass.Text == "exelib.net") { string script = "<script type=\"text/javascript\">alert('Bienvenue exelib.net :)');</script>"; //ClientScript.RegisterClientScriptBlock(Page.GetType(), "alert", script); Literal1.Text = script; } else { string script = "<script type=\"text/javascript\">alert('Login ou mot de passe incorrects :(');</script>"; //ClientScript.RegisterClientScriptBlock(Page.GetType(), "alert", script); Literal1.Text = script; } } } }
Note
Il existe plusieurs méthodes permettent d'afficher une boite de dialogue (Alert) en Asp.net:
- Utiliser un label avec une balise JavaScript contenant la fonction alert
- Utiliser la fonction RegisterClientScriptBlock de la classe ClientScript qui permet d'ajouter un script à la page (utile si on veut appeler une fonction javascript).
Question 2:
Code Web Form: AccesMotDePasse2.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AccesMotDePasse2.aspx.cs" Inherits="tp1_exelib.AccesMotDePasse2" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <h2>Accès par Mot de passe</h2> <div> <asp:Label ID="Label1" runat="server" Text="Nom d'utilisateur: "></asp:Label> <asp:TextBox ID="txtLogin" runat="server"></asp:TextBox> <br /> <br /> <asp:Label ID="Label2" runat="server" Text="Mot de passe: "></asp:Label> <asp:TextBox ID="txtPass" runat="server" TextMode="Password"></asp:TextBox> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="Valider" OnClick="Button1_Click" /> <br /> <br /> <asp:Label ID="Label3" runat="server"></asp:Label> </div> </form> </body> </html>
Code Behind: AccesMotDePasse2.aspx.cs
using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace tp1_exelib { public partial class AccesMotDePasse2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { if(txtLogin.Text == "exelib" && txtPass.Text == "exelib.net") { Label3.Text = "Bienvenue exelib.net :)"; Label3.ForeColor = Color.Green; } else { Label3.Text = "Login ou mot de passe incorrects :("; Label3.ForeColor = Color.Red; } } } }
N'oubliez pas d'importer le namespace System.Drawing pour utiliser la classe Color