Anglais Francais Prosygma Italie
-
    hebergement asp
prosygma_logo

Techniques

Cette section permet de regrouper un ensemble de techniques ou de scripts qui ont l'originalité d'arriver à résoudre une difficulté avec le moindre effort ou qui sont particulièrement efficaces...


Techniques / Application ASP

Dans la plupart des applications web, il existe aujourd'hui un accès réservé protégé par un mot de passe et un login. Cette authentification peut permettre par exemple la possibilité à l'utilisateur authentifié de télécharger des documents, ou bien d'avoir la possibilité de poster des informations sur un forum.

Il existe plusieurs méthodes pour arriver à ce résultat. Nous allons partir sur des bases simples, pour pouvoir authentifier un utilisateur nous aurons besoin d'un formulaire où celui-ci renseignera sont login et son mot de passe.

La page contenant le formulaire s'appelera "login.asp" et elle s'enverra elle même les données du formulaire.

Après avoir récupérer ceux-ci nous utiliserons une base Access afin de vérifier que le couple login/password est bien existant. Si l'utilisateur n'existe pas ou si son mot de passe ne correspond pas il n'aura pas le droit d'accès et nous afficherons un message d'erreur. Sinon nous pourrons le rediriger vers la partie protégée du site ou lui afficher l'information que nous voulions cachée aux inconnus.

Dans l'exemple suivant une base de données nommée "login.mdb" est créée. Elle possède la table "users" dont voici la description :

  1. id_user
  2. name
  3. login
  4. password

<%
'Script de la page login.asp:

'Déclaration des variables
Dim Con
Dim rstLogin
Dim strSQL

Dim login
Dim password

'Si la page reçoit des données de formulaire
'on les stocke dans des variables
'Nous remplaçons une apostrophe par 2
'apostrophes pour ne pas avoir de problème dans
'la requête à la base
login = Replace(Request.Form("login"), "'", "''")
password = Replace(Request.Form("password"), "'", "''") 

%>
<html>
<head><title>Login Page</title>
</head>
<body bgcolor="gray">
<%

'Si cette page ne reçoit pas les données du formulaire
If Request.Form("validate") <> "GO" Then
 %>
  <form action="login.asp" method="post">
    <table border="0">
	<tr>
	  <td align="right">Login:</td>
	  <td><input type="text" name="login"></td>
	</tr>
	<tr>
	   <td align="right">Password:</td>
	   <td>
	     <input type="password" name="password">
	   </td>
	</tr>
	<tr>
	   <td align="right"></TD>
	   <td>
	     <input name='validate' type="submit" VALUE="GO">
	   </td>
	</tr>
    </table>
  </form>
 <%
Else
   sql = "SELECT * FROM users " _
    & "WHERE login = '" & login & "' " _
    & "AND password ='" & password & "';"

	Set Con = Server.CreateObject("ADODB.Connection")
	Con.Open("DRIVER={Microsoft Access Driver (*.mdb)};" _
		& "DBQ=" & Server.MapPath("login.mdb"))

	Set rstLogin = Con.Execute(sql)

      If Not rstLogin.EOF Then
		
		'Ici nous pouvons renvoyer l'utilisateur vers 
		'une partie sécurisée :
		Response.redirect "secure_page.asp"
		
      Else
		%>
		<p>
		<font size="4" face="arial,helvetica"><strong>
	   Erreur de login !
		</strong></font>
		</p>
		<p>
		<a href="login.asp">Réessayer</a>
		</p>
		<%
		
		'on arrête le chargement de la page
		Response.End
     End If

	' Clean Up
	rstLogin.Close
	Set rstLogin = Nothing
	cnnLogin.Close
	Set cnnLogin = Nothing
End If
%>
</body>
</html>