Asp - administrer en ligne : protection des pages

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)

   

<%
' -----------------------------------------------------------------------------------------------------------------
' Accès autorisé si identifié
if protect<\"4\" then %>
   &gt; ADMINISTRATION DU SITE
<%else
' -----------------------------------------------------------------------------------------------------------------
' sinon affichage du formulaire d'identification
%>
   <FORM action=\"index.asp\" method=\"POST\">
      Utilisateur :

      Mot de passe :

      
   </FORM>
<%end if%>
   </td>
      

<!-- #include file="_protect.asp"-->
<html><head><title></title></head>

<table>

</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

Ce document intitulé « Asp - administrer en ligne : protection des pages » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous