Mon tutorial original se trouve ici :
http://www.asp-php.net/scripts/asp-php/protection-page.php
= = Les fichiers nécessaires : ==
| <table cellspacing=\"1\" cellpadding=\"3\" width=\"100%\" bgcolor=\"#ffffff\" border=\"0\"> |-
<table cellpadding=\\"5\\" border=\\"0\\"> |-
_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 |
</td> </tr> </tbody> </table> </td> </tr> </tbody> </table>
_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
' -----------------------------------------------------------------------------------------------------------------
%>
</td> |
</td> </tr> <tr> <td align="middle"> (puis avec COOKIE)
</td> </tr> <tr> <td align ="middle">
<%
==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
%> |
</td> </tr> <tr> <td align="middle"> (ou avec SESSION)
</td> </tr> <tr> <td align ="middle">
<%
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
%> |
</td> </tr> </tbody> </table>
_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
%>
</td> |
</td> <td align="middle" width="50%">
<%
' -------------------------------------------------------
' 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
%> |
</td> </tr> </tbody> </table>
index.asp (celui du dossier ADMIN)
<!-- #include file="_protect.asp"-->
<html><head><title></title></head>
<table> |
<%
' -----------------------------------------------------------------------------------------------------------------
' Accès autorisé si identifié
if protect<\"4\" then %>
> ADMINISTRATION DU SITE
<%else
' -----------------------------------------------------------------------------------------------------------------
' sinon affichage du formulaire d'identification
%>
<FORM action=\"index.asp\" method=\"POST\">
Utilisateur :
Mot de passe :
</FORM>
<%end if%>
</td>
</html>
</td> </tr> </tbody> </table>
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">
</form> |
_deconnexion.asp
:
(avec COOKIE) | (avec SESSION) |
-
<% ' deconnection
' -------------------------------------------------------
' on vide/detruit le cookie
response.cookies(\"MONCOOKIE\")=\"\"
==cookies("MONCOOKIE").Expires = Date-1==
' -------------------------------------------------------
' Redirection vers le site
response.redirect(\"http://www.MONSITE.com\")
%>
</td> |
</td> <td align="middle" width="50%">
<% ' deconnection
' -------------------------------------------------------
' on vide/detruit la session
Session.Contents.Remove("MASESSION")
' -------------------------------------------------------
' Redirection vers le site
response.redirect("http://www.MONSITE.com")
%> |
</td> </tr> </tbody> </table>
Adresse d'origine