Mon tutorial original se trouve ici :
http://www.asp-php.net/scripts/asp-php/protection-page.php
Les fichiers nécessaires :
_protect.asp | : contient vos identifiants et mots de passe | | _protectpage.asp | : vérifie la validité de l'accès | | index.asp | : celui du dossier ADMIN | | vos pages à protéger | : avec test de validité | | _deconnexion.asp | : déconnexion et retour à votre site | | |
_protect.asp
| (partie commune) |
| <% ' ----------------------------------------------------------------------------------------------------------------- ' Definition de la liste des identifiants et mots de passe (3 niveaux) ' Remplacer les mots : ' IDENTIFIANT1 et MOTDEPASSE1 : par ceux du Webmestre ' IDENTIFIANT2 et MOTDEPASSE2 : par ceux des Administrateurs ' IDENTIFIANT3 et MOTDEPASSE3 : par ceux des collaborateurs ' ----------------------------------------------------------------------------------------------------------------- dim password(3,3) i=0 : niv = 1 ' Webmestre i=i+1 : password(i,1) = "IDENTIFIANT1" : password(i,2)="MOTDEPASSE1" password(i,3) = niv niv = 2 ' Administrateurs i=i+1 : password(i,1) = "IDENTIFIANT2" : password(i,2)="MOTDEPASSE2" password(i,3) = niv niv = 3 ' collaborateurs i=i+1 : password(i,1) = "IDENTIFIANT3" : password(i,2)="MOTDEPASSE3" password(i,3) = niv ' ----------------------------------------------------------------------------------------------------------------- %> | |
| (puis avec COOKIE) |
| <% response.cookies("MONCOOKIE")="" ' si le visiteur a validé le formulaire if (request.form("LELOGIN")<>"" and request.form("LEPASS")<>"") then ' on compare avec la liste for i = 1 to ubound(password) ' si le login et le mot de passe sont bons if (request.form("LELOGIN")=password(i,1) and request.form("LEPASS")=password(i,2)) then ' on stocke le niveau dans un cookie response.cookies("MONCOOKIE")=password(i,3) validitecookie = 1 ' on definit la duree de validite du cookie (ici valable 1 jour) response.cookies("MONCOOKIE").Expires = Date + validitecookie exit for end if next end if ' ----------------------------------------------------------------------------------------------------------------- ' On lit le cookie. si il est vide : niveau 4 protect=request.cookies("MONCOOKIE") if protect="" then protect="4" end if %> | |
| (ou avec SESSION) |
| <% Session("MASESSION") = "" ' si le visiteur a validé le formulaire if (request.form("LELOGIN")<>"" and request.form("LEPASS")<>"") then ' on compare avec la liste for i = 1 to ubound(password) ' si le login et le mot de passe sont bons if (request.form("LELOGIN")=password(i,1) and request.form("LEPASS")=password(i,2)) then ' on stocke le niveau dans une variable de session Session("MASESSION") = password(i,3) ' on definit la duree de vie de la session en minutes (ici 1 heure) Session.TimeOut = 60 exit for end if next end if ' ----------------------------------------------------------------------------------------------------------------- ' On lit la variable de session. si elle est vide : niveau 4 protect = Session("MASESSION") if protect="" then protect="4" end if %> | |
_protectpage.asp
| (avec COOKIE) | (avec SESSION) |
| <% ' ------------------------------------------------------- ' Remplacer le mot MONCOOKIE ' par LE MEME que dans _protect.asp ' ------------------------------------------------------- ' On lit le cookie protect = request.cookies("MONCOOKIE") ' si vide >> niveau 4 if (protect = "") then protect="4" end if %> | | | <% ' ------------------------------------------------------- ' Remplacer le mot MASESSION ' par LE MEME que dans _protect.asp ' ------------------------------------------------------- ' On lit la session protect = Session("MASESSION") ' si vide >> niveau 4 if (protect = "") then protect="4" end if %> | |
index.asp (celui du dossier ADMIN)
| <!-- #include file="_protect.asp"--> <html><head><title></title></head> <body><div align="center"> <table> <tr> <td align="center"> <% ' ----------------------------------------------------------------------------------------------------------------- ' Accès autorisé si identifié if protect<"4" then %> <a href="MONmenuADMIN.asp">> ADMINISTRATION DU SITE</a> <%else ' ----------------------------------------------------------------------------------------------------------------- ' sinon affichage du formulaire d'identification %> <FORM action="index.asp" method="POST"> Utilisateur :<br><input name="LELOGIN" /><br><br> Mot de passe :<br><input name="LEPASS" type="password" /><br><br> <input type="submit" value="Valider" /> </FORM> <%end if%> </td> </tr> </table> </div></body></html>
|
Vos pages à protéger
Ajouter en tout début de chaque page à protéger :
| <!-- #include file="_protectpage.asp"--> <% if protect<"4" then %> |
Pour gérer les différents niveaux de protection, on remplace par :
| <% if protect<"2" then %> (Accès 1 pour le webmestre uniquement) <% if protect<"3" then %> (Accès 1+2 pour le webmestre et administrateurs) <% if protect<"4" then %> (Accès 1+2+3 pour le webmestre, administrateurs et collaborateurs)
|
Ajouter en toute fin de chaque page à protéger :
| <% else %> Vous n'avez pas accès à cette page. <% end if %>
|
Insérer un bouton de déconnexion dans ses pages :
- on insère dans les pages le formulaire :
<form method="POST" action="_deconnexion.asp"> <input type="submit" value="deconnexion" name="deconnexion"> </form>
|
_deconnexion.asp :
| (avec COOKIE) | (avec SESSION) |
| <% ' deconnection ' ------------------------------------------------------- ' on vide/detruit le cookie response.cookies("MONCOOKIE")="" response.cookies("MONCOOKIE").Expires = Date-1 ' ------------------------------------------------------- ' Redirection vers le site response.redirect("http://www.MONSITE.com") %> | | | <% ' deconnection ' ------------------------------------------------------- ' on vide/detruit la session Session.Contents.Remove("MASESSION")
' ------------------------------------------------------- ' Redirection vers le site response.redirect("http://www.MONSITE.com") %> | |