Labs ASP.NET v1.1
Aurélien Norie & Sébastien Bovo [Microsoft]
Lab06 But du Lab Le but de ce Lab de mettre en place l’authentification par formulaire pour une application ASP.NET.
Exercice 1 – les paramètres de sécurité dans le fichier Web.config -
Créer une nouvelle application Web ASP.NET en Visual Basic : « 06VBFormulaire » Dans l'Explorateur de projets, ouvrer le fichier Web.config Dans la balise «
», modifier le mode d'authentification en Forms Insérer la balise « » et indiquez les attributs appropriés :
-
Refuser l'accès à un utilisateur anonyme dans la section « » de la manière suivante : <deny users ="?" />
-
Lancer « l’Analyseur de requêtes » de SQL Server. Se Connecter au serveur local avec le nom « SA », et son mot de passe Activer la commande « Fichier/Ouvrir » afin d’ouvrir le fichier « Utilisateurs.sql » fourni
-
Utilisateurs.sql
-
Exécuter le contenu SQL de ce fichier sur la base « PUBS »
Page 1 sur 3
Labs ASP.NET v1.1
Aurélien Norie & Sébastien Bovo [Microsoft]
Exercice 2 – Page de logon et validation de l’utilisateur -
Ajouter un nouveau formulaire Web au projet nommé « Logon.aspx » Ajouter deux labels, un textbox nomé « txtUserName », un second textbox « txtUserPass » et un bouton « cmdLogin » :
-
Attribuer à la propriété « TextMode » du textbox « txtUserPass » la valeur « Password » - Double-cliquer sur le bouton pour faire apparaître le code behind - Importer les espaces de noms nécessaires en début de fichier : Imports System.Data.SqlClient Imports System.Web.Security -
Créer une fonction ValidateUser pour valider les informations d'identification des utilisateurs par consultation dans la base de données : Function ValidateUser(ByVal uid As String, ByVal passwd As String) As Boolean Dim cnn As SqlConnection Dim cmd As SqlCommand Dim dr As SqlDataReader Dim retVal As Boolean = False cnn = New SqlConnection("server=localhost;uid=sa;pwd=saPassword;database=Pubs;") cmd = New SqlCommand("Select * from users where uname = '" & uid & "'", cnn) cnn.Open() dr = cmd.ExecuteReader() While (dr.Read()) If StrComp(dr.Item("Pwd"), passwd, 1) = 0 Then retVal = True End If End While cnn.Close() ValidateUser = retVal End Function -
Appeler cette fonction dans l’évènement « cmdLogin_Click » et rediriger l’utilisateur vers la page initialement appelée : Private Sub cmdLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLogin.Click If ValidateUser(txtUserName.Text, txtUserPass.Text) Then
Page 2 sur 3
Labs ASP.NET v1.1
Aurélien Norie & Sébastien Bovo [Microsoft]
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, False) Else
Response.Redirect("logon.aspx", True) End If End Sub -
Renommer la page « WebForm1.aspx » existante en « Default.aspx », puis l’ouvrir dans l'éditeur Ajouter un bouton « cmdSignOut » avec le texte « Se déconnecter »
- Double-cliquer sur le bouton pour voir apparaître le code behind - Importez les espaces de noms nécessaires : Imports System.Web.Security - Utiliser le code suivant pour déconnecter l’utilisateur de l’application : Private Sub cmdSignOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSignOut.Click FormsAuthentication.SignOut() Response.Redirect("logon.aspx", True) End Sub -
Enregistrer et compiler le projet. Naviguer sur la page « Default.aspx » Constater que vous êtes automatiquement redirigés vers la page de Logon. Entrer le logon et le mot de passe d’un utilisateur valide (« user1 », « user1 » par exemple). Constater la redirection automatique vers la page demandée à l’origine.
Page 3 sur 3