Contrôle d’accès
- Par: jack
- Le: 21.02.2009 17:44:29
- Dans: Active Server Page
Nous vous proposons 4 fichiers importants qui vous permettront de protéger toutes les pages de votre site par un simple include.
Voici le principe de fonctionnement. Commencer par inclure le fichier ctrl.asp en début des pages à contrôler. Lorsque la page est demandée par un visiteur, le fichier ctrl.asp contrôle si la variable session a été initialisée. Si c’est le cas, la page est envoyée. Dans le cas contraire, cela signifie que le visiteur ne s’est pas annoncé. C’est donc la page de login qui est envoyée à la place de la page demandée. Si le login et le mot de passe entré par le visiteur est correcte, la page demandée est envoyée.
Les fichiers
Le fichier ctrl.asp
<%
if session("login")<>"ok" then
session("origine")=Request.ServerVariables("PATH_INFO")
response.redirect("ctrl_page/login.asp")
end if
%>
La variable session "login" est contrôlée. Si sa valeur est différente de « ok », cela signifie que la page login n'a pas été utilisée ou que la durée de la session est dépassée. Le fichier va dans ce cas, faire les opérations suivantes :
La page d’origine est mémorisée
La page de login est lancée à la place de la page demandée.
Si la variable session "login" a la valeur ok, rien ne se passe et la page demandée est envoyée.
Le fichier login.asp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Login</title>
</head>
<body>
<form method="post" action="gestion.asp" name="controle">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Login:</td>
<td><input name="Nom" type="text" size="15"></td>
</tr>
<tr>
<td nowrap>Mot de passe: </td>
<td><input name="Code" type="password" size="15"></td>
</tr>
<tr>
<td nowrap> </td>
<td><input name="submit" type='submit' value='Envoyer'></td>
</tr>
</table>
</form>
</body>
</html>
Le fichier demande le login et le mot de passe avant de les transmettre au fichier gestion.asp
Le fichier gestion.asp
<%
login = "login"
passe = "passe"
session("login")=""
if (request("Nom")= login) then
if (request("Code")= passe) then
session("login")="ok"
response.redirect(session("origine"))
end if
end if
response.redirect("faux.htm")
%>
Remarquez ici que le login et le mot de passe sont les mêmes pour tous les visiteurs.
Le login est d' abord contrôlé. S’il est correct, c’est le mot de passe qui est ensuite contrôlé. Si tout est correct, la valeur de la variable session est mise à "ok" pour que les autres pages ne redemandent pas le login.
Le programme renvoi au visiteur la page qui avait été demandée et qui avait été mémorisée dans la variable session "origine".
Si le mot de passe ou le login est faux, c’est la page faux.htm qui est envoyée.
Le fichier faux.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>FAUX</title>
</head>
<body>
<div align="center">
<br>
Accès Interdit<br>
<br>
<a href="login.asp">Retour</a>
</div>
</body>
</html>
Pour finir, une personnalisation des login et mot de passe est recommandée en changeant les deux premières lignes du fichier gestion.asp.