Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Newsletter | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Dév. Web PHP ASP XML XMLRAD Python Assembleur Autres Windows Linux
Accueil Java DotNET & C# Visual Basic C & C++ Delphi Pascal Access SQL & SGBD Oracle UML
FORUMS C/C++ F.A.Q C F.A.Q C++ F.A.Q VC++ F.A.Q BCB TUTORIELS C/C++ LIVRES C/C++ COMPILATEURS

 

Les Labs Microsoft

Section C# / Asp.Net du site http://phenix.developez.com

par Patrick VALERI

Plan du site - Autres sections

Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]

J'ai repris les codes d'origine VB.NET en C# et apporter quelques commentaires.

Index DotNet Lab suivant Lab précédent Dernier Lab

 

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 « <authentication> », modifier le mode d'authentification en Forms
  • Insérer la balise « <forms> » et indiquez les attributs appropriés :

< authentication mode ="Forms">

< forms name =".ASPXAuth" loginUrl ="logon.aspx"

protection ="All" path ="/" timeout ="30" />

</ authentication >

  • Refuser l'accès à un utilisateur anonyme dans la section « <authorization> » de la manière suivante :

< authorization >

< deny users ="?" />

< allow users = "*" />

</ authorization >

  • 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

  • Exécuter le contenu SQL de ce fichier sur la base « PUBS »


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

Et en C#:

private bool ValidateUser( string uid, string passwd)

{

SqlConnection cnn = new SqlConnection("server=localhost;uid=pvaleri;pwd=pval77;database=Pubs;");

SqlCommand cmd = new SqlCommand("Select * from users where uname = '" + uid + "'", cnn);

cnn.Open();

bool retVal= false;

SqlDataReader dr = cmd.ExecuteReader();

while (dr.Read())

{

if (dr["Pwd"].ToString().CompareTo(passwd)== 0)

retVal = true;

}

cnn.Close();

return retVal;

}

  • 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

FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, False)

Else

Response.Redirect("logon.aspx", True)

End If

End Sub

Et en C# :

private void cmdLogin_Click( object sender, System.EventArgs e)

{

if (ValidateUser(txtUserName.Text, txtUserPass.Text))

{

FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false);

}

else

Response.Redirect("logon.aspx", true);

}

  • 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

Et en C# :

private void cmdSignOut_Click( object sender, System.EventArgs e)

{

FormsAuthentication.SignOut();

Response.Redirect("logon.aspx", true);

}

  • 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.

Ce document est issu de http://phenix.developpez.com/ et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Vos questions techniques : forum d'entraide C & C++ - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2004 www.developpez.com

Analyse et mesure de frequentation internet par


hit-parade