DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 825498 - Dernière mise à jour: jeudi 8 février 2007 - Version: 5.0

Pour vous procurer une version Microsoft FrontPage 2002 de cet article, reportez-vous à l'article 321439  (http://support.microsoft.com/kb/321439/ ) .
Pour vous procurer une version Microsoft FrontPage 2000 de cet article, reportez-vous à l'article 321503  (http://support.microsoft.com/kb/321503/ ) .

Sommaire

Résumé

Cet article décrit pas à pas comment faire pour créer une solution simple de page Web protégée par mot de passe à l'aide de FrontPage 2003, d'Active Server Pages (ASP) et d'une base de données Microsoft Access.

Important
  • L'exemple de code fourni dans cet article n'est pas destiné à remplacer les fonctionnalités de sécurité intégrées de FrontPage 2003. Les exemples sont destinés uniquement à fournir un mécanisme de sécurité simple pour des utilisateurs qui naviguent sur votre site Web. Comme telle, la sécurité FrontPage 2003 ne s'intègre pas avec les noms d'utilisateurs et les mots de passe qui sont ajoutés à la base de données Microsoft Access.
  • Les noms d'utilisateurs et les mots de passe entrés sont transmis sur Internet au format texte brut. Afin d'accroître la sécurité, Microsoft recommande l'utilisation d'un serveur Web qui peut utiliser le cryptage SSL (Secure Sockets Layer). Pour plus d'informations, contactez votre administrateur de site Web ou votre fournisseur de services Internet.

Utilisation des fonctionnalités ASP dans FrontPage 2003

Pour pouvoir utiliser les fonctionnalités ASP de FrontPage 2003, vous devez avoir accès à un serveur Web ou à un site Web sur disque qui prend en charge ASP.

Création d'un nouveau site Web dans FrontPage 2003

Remarque L'exemple suppose que vous nommez votre site Web « logon », et que vous le créez en tant que sous-site Web de la racine de votre site Web. Si vous utilisez un nom autre que "logon" ou si vous créez le site Web à un autre emplacement, vous devez modifier en conséquence les étapes décrites dans cet article.

Pour créer un site Web dans FrontPage 2003, procédez comme suit :
  1. Démarrez FrontPage 2003.
  2. Dans le menu Fichier, cliquez sur Nouveau.
  3. Dans le volet Office, cliquez sur Autres modèles de sites Web, puis sur Site Web vide.
  4. Sous Options, tapez l'emplacement où vous souhaitez stocker le nouveau site Web au format suivant :
    http://nom_serveur/logon
    nom_serveur est le nom de votre serveur Web prenant en charge les pages ASP.
  5. Cliquez sur OK.
Le nouveau site Web vide nommé "logon" est ouvert dans FrontPage 2003.

Création d'une base de données

Créez une base de données pour stocker des noms d'utilisateur et des mots de passe à l'aide d'un programme de base de données tel que Microsoft Office Access 2003.

Remarque Si vous utilisez un programme autre qu'Access 2003 pour créer la base de données, modifiez ces étapes en conséquence.

Pour créer une base de données, procédez comme suit :
  1. Démarrez Access 2003.
  2. Dans le menu Fichier, cliquez sur Nouvelle base de données.
  3. Dans le volet Office, cliquez sur Base de données vide.
  4. Tapez logon.mdb comme nom de fichier, puis cliquez sur Créer.
  5. Dans le volet Objets, cliquez sur Tables, puis sur Nouveau.
  6. Cliquez sur Mode Création, puis sur OK.
  7. Sur la première ligne de la colonne Nom du champ, tapez UID.
  8. Dans la colonne Type de données correspondante, cliquez sur Texte, puis sur le bouton Clé primaire de la barre d'outils (représenté sous la forme d'une clé).
  9. Sur la deuxième ligne de la colonne Nom du champ, tapez PWD, puis cliquez sur Texte sur la deuxième ligne de la colonne Type de données.
  10. Dans le menu Fichier, cliquez sur Enregistrer.
  11. Dans la zone Nom de la table, tapez tblUsers, puis cliquez sur OK.
  12. Dans le menu Affichage, cliquez sur Mode Feuille de données.
  13. Dans la colonne UID, tapez testuser.

    Dans la colonne PWD, tapez password.
  14. Dans le menu Fichier, cliquez sur Fermer, puis quittez Access 2003.
Remarque Pour les raisons de sécurité, les mots de passe sont limités à une combinaison de lettres majuscules et minuscules et de nombres.

Importation de la base de données

Importez la base de données de noms d'utilisateur et de mots de passe que vous avez créée dans FrontPage 2003. Pour cela, procédez comme suit :
  1. Dans FrontPage 2003 avec votre site Web d'ouverture de session ouvert, cliquez sur Importer dans le menu Fichier.
  2. Cliquez sur Ajouter un fichier, puis recherchez et cliquez sur le fichier logon.mdb que vous avez créé.

    Cliquez sur Ouvrir.
  3. Cliquez sur Modifier, tapez _private/logon.mdb dans la zone Emplacement du fichier dans le site Web, puis cliquez sur OK.

    Remarque Il y a un caractère de soulignement (_) devant "private" dans le chemin d'accès au fichier.
  4. Cliquez sur OK pour importer le fichier de base de données.
  5. Si vous êtes invité à créer une connexion de base de données pour ce fichier importé, cliquez sur Non.

Création des pages ASP

Vous devez créer plusieurs fichiers pour travailler avec cet exemple. Tout d'abord, créez une page d'accueil pour votre site Web, une page "non sécurisée" et une page protégée par mot de passe à des fins de test, puis la page Web d'ouverture de session et le fichier Include d'ouverture de session.

Création de la page d'accueil

Cette page sert de page par défaut pour votre site et contient des liens vers la page non sécurisée et la page Web protégée par mot de passe que vous créez. Pour créer une page d'accueil, procédez comme suit :
  1. Dans FrontPage 2003, cliquez sur Créer une nouvelle page normale.
  2. Dans la zone de pied de page de la fenêtre de document, cliquez sur Code pour afficher le mode Code.
  3. Sélectionnez puis supprimez tout le code HTML de la page Web.
  4. Tapez ou collez le code HTML suivant dans la page Web.
    <% @language="vbscript" %>
    <html>
    <head><title>Home Page</title></head>
    <body>
    <h3>Home Page</h3>
    <p>You are logged on as: 
    <%
      If Len(Session("UID")) = 0 Then
        Response.Write "<b>You are not logged on.</b>"
      Else
        Response.Write "<b>" & Session("UID") & "</b>"
      End If
    %>
    </p>
    <ul>
     
    <li><a href="passwordprotect.asp">Password-Protected Page</a></li>
    <li><a href="nonsecure.asp">Nonsecure Page</a></li>
    
    </ul>
    </body>
    </html>
    
  5. Cliquez avec le bouton droit sur l'onglet nouvelle_page_1.htm, puis cliquez sur Enregistrer.

    Enregistrez la page sous default.asp dans le dossier racine de votre site Web d'ouverture de session.
  6. Dans le menu Fichier, cliquez sur Fermer pour fermer la page Web default.asp.

Création de la page non sécurisée

Créez une page ASP par défaut accessible à tout le monde. Pour créer une page non sécurisée, procédez comme suit :
  1. Dans FrontPage 2003, cliquez sur Créer une nouvelle page normale.
  2. Dans la zone de pied de page de la fenêtre de document, cliquez sur Code pour afficher le mode Code.
  3. Sélectionnez puis supprimez tout le code HTML de la page Web.
  4. Tapez ou collez le code HTML suivant dans la page Web.
    <% @language="vbscript" %>
    <html>
    <head><title>Nonsecure Page</title></head>
    <body>
    <h3>Nonsecure Page</h3>
    <p>You are logged on as: 
    <%
      If Len(Session("UID")) = 0 Then
        Response.Write "<b>You are not logged on.</b>"
      Else
        Response.Write "<b>" & Session("UID") & "</b>"
      End If
    %>
    </p>
    <p><a href="default.asp">Back to default</a></p>
    </body>
    </html>
    
  5. Cliquez avec le bouton droit sur l'onglet nouvelle_page_1.htm, puis cliquez sur Enregistrer.

    Enregistrez la page sous nonsecure.asp dans le dossier racine de votre site Web d'ouverture de session.
  6. Dans le menu Fichier, cliquez sur Fermer pour fermer la page Web nonsecure.asp.

Création de la page protégée par mot de passe

Cette page est identique à la page Web non sécurisée créée précédemment, hormis le fait que vous devez ajouter la ligne de code suivante vers le haut de la page :
<!--#include virtual="/logon/_private/logon.inc"-->
Lorsque vous ajoutez cette ligne de code à une page Web ASP, cette page devient protégée par mot de passe par le fichier logon.inc que vous créez. Pour créer une page Web protégée par mot de passe, procédez comme suit :
  1. Dans FrontPage 2003, cliquez sur Créer une nouvelle page normale.
  2. Dans la zone de pied de page de la fenêtre de document, cliquez sur Code pour afficher le mode Code.
  3. Sélectionnez puis supprimez tout le code HTML de la page Web.
  4. Tapez ou collez le code HTML suivant dans la page Web.
    <% @language="vbscript" %>
    <!--#include virtual="/logon/_private/logon.inc"-->
    <html>
    <head><title>Password-Protected Page</title></head>
    <body>
    <h3>Password-Protected Page</h3>
    <p>You are logged on as: 
    <%
      If Len(Session("UID")) = 0 Then
        Response.Write "<b>You are not logged on.</b>"
      Else
        Response.Write "<b>" & Session("UID") & "</b>"
      End If
    %>
    </p>
    <p><a href="default.asp">Back to default</a>
    </body>
    </html>
    
  5. Cliquez avec le bouton droit sur l'onglet nouvelle_page_1.htm, puis cliquez sur Enregistrer.

    Enregistrez la page sous passwordprotect.asp dans le dossier racine de votre site Web d'ouverture de session.
  6. Dans le menu Fichier, cliquez sur Fermer pour fermer la page Web passwordprotect.asp.

Création de la page d'ouverture de session

Créez une page d'ouverture de session semblable à une boîte de dialogue d'ouverture de session Windows ordinaire. Les utilisateurs qui essaient d'accéder à la page Web protégée par mot de passe sont envoyés à cette page pour entrer leur nom d'utilisateur et leur mot de passe. Pour créer une page d'ouverture de session, procédez comme suit :
  1. Dans FrontPage 2003, cliquez sur Créer une nouvelle page normale.
  2. Dans la zone de pied de page de la fenêtre de document, cliquez sur Code pour afficher le mode Code.
  3. Sélectionnez puis supprimez tout le code HTML de la page Web.
  4. Tapez ou collez le code HTML suivant dans la page Web.
    <% @language="vbscript" %>
    <!--#include virtual="/logon/_private/logon.inc"-->
    <%
      ' Was this page posted to?
      If UCase(Request.ServerVariables("HTTP_METHOD")) = "POST" Then
        ' If so, check the username/password that was entered.
        If ComparePassword(Request("UID"),Request("PWD")) Then
          ' If comparison was good, store the user name...
          Session("UID") = Request("UID")
          ' ...and redirect back to the original page.
          Response.Redirect Session("REFERRER")
        End If
      End If
    %>
    <html>
    <head><title>Logon Page</title>
    <style>
    body  { font-family: arial, helvetica }
    table { background-color: #cccccc; font-size: 9pt; padding: 3px }
    td    { color: #000000; background-color: #cccccc; border-width: 0px }
    th    { color: #ffffff; background-color: #0000cc; border-width: 0px }
    </style>
    </head>
    <body bgcolor="#000000" text="#ffffff">
    <h3 align="center">&#xa0;</h3>
    <div align="center"><center>
    <form action="<%=LOGON_PAGE%>" method="POST">
    <table border="2" cellpadding="2" cellspacing="2">
      <tr>
        <th colspan="4" align="left">Enter User Name and Password</th>
      </tr>
      <tr>
        <td>&#xa0;</td>
        <td colspan="2" align="left">Please type your user name and password.</td>
        <td>&#xa0;</td>
      </tr>
      <tr>
        <td>&#xa0;</td>
        <td align="left">Site</td>
        <td align="left"><%=Request.ServerVariables("SERVER_NAME")%> &#xa0;</td>
        <td>&#xa0;</td>
      </tr>
      <tr>
        <td>&#xa0;</td>
        <td align="left">User Name</td>
        <td align="left"><input name="UID" type="text" size="20"></td>
        <td>&#xa0;</td>
      </tr>
      <tr>
        <td>&#xa0;</td>
        <td align="left">Password</td>
        <td align="left"><input name="PWD" type="password" size="20"></td>
        <td>&#xa0;</td>
      </tr>
      <tr>
        <td>&#xa0;</td>
        <td colspan="2" align="center"><input type="submit" value="LOGON"></td>
        <td>&#xa0;</td>
      </tr>
    </table>
    </form>
    </center></div>
    </body>
    </html>
    
  5. Cliquez avec le bouton droit sur l'onglet nouvelle_page_1.htm, puis cliquez sur Enregistrer.

    Enregistrez la page sous logon.asp dans le dossier racine de votre site Web d'ouverture de session.
  6. Dans le menu Fichier, cliquez sur Fermer pour fermer la page Web logon.asp.

Création du fichier Include d'ouverture de session

Le fichier Include fournit la fonctionnalité de noms d'utilisateurs et de mots de passe ; il est utilisé à la fois par la page Web protégée par mot de passe et par la page Web d'ouverture de session. Pour créer le fichier Include d'ouverture de session, procédez comme suit :
  1. Dans FrontPage 2003, cliquez sur Créer une nouvelle page normale.
  2. Dans la zone de pied de page de la fenêtre de document, cliquez sur Code pour afficher le mode Code.
  3. Sélectionnez puis supprimez tout le code HTML de la page Web.
  4. Tapez ou collez le code HTML suivant dans la page Web.
    <%
      ' Do not cache this page.
      Response.CacheControl = "no-cache"
    
      ' Define the name of the users table.
      Const USERS_TABLE  = "tblUsers"
      ' Define the path to the logon page.
      Const LOGON_PAGE   = "/logon/logon.asp"
      ' Define the path to the logon database.
      Const MDB_URL      = "/logon/_private/logon.mdb"
    
      ' Check to see whether you have a current user name.
      If Len(Session("UID")) = 0 Then
        ' Are you currently on the logon page?
        If LCase(LOGON_PAGE) <> LCase(Request.ServerVariables("URL")) Then
          ' If not, set a session variable for the page that made the request...
          Session("REFERRER") = Request.ServerVariables("URL")
          ' ...and redirect to the logon page.
          Response.Redirect LOGON_PAGE
        End If
      End If
    
      ' This function checks for a username/password combination.
      Function ComparePassword(UID,PWD)
        ' Define your variables.
        Dim strSQL, objCN, objRS
        ' Set up your SQL string.
        strSQL = "SELECT * FROM " & USERS_TABLE & _
          " WHERE (UID='" & ParseText(UID) & _
          "' AND PWD='" & ParseText(PWD) & "');"
        ' Create a database connection object.
        Set objCN = Server.CreateObject("ADODB.Connection")
        ' Open the database connection object.
        objCN.Open "driver={Microsoft Access Driver (*.mdb)}; dbq=" & _
          Server.MapPath(MDB_URL) & "; uid=admin; pwd="
        ' Run the database query.
        Set objRS = objCN.Execute(strSQL)
        ' Set the status to true/false for the database lookup.
        ComparePassword = Not(objRS.EOF)
        ' Close your database objects.
        Set objRS = Nothing
        Set objCN = Nothing
      End Function
    
      ' This function restricts text to alpha-numeric data only.
      Function ParseText(TXT)
        Dim intPos, strText, intText
        For intPos = 1 TO Len(TXT)
          intText = Asc(Mid(TXT,intPos,1))
          If (intText > 47 And intText < 58) Or _
             (intText > 64 And intText < 91) Or _
             (intText > 96 And intText < 123) Then
              strText = strText & Mid(TXT,intPos,1)
          End if
        Next
        ParseText = strText
      End Function
    %>
  5. Cliquez avec le bouton droit sur l'onglet nouvelle_page_1.htm, puis cliquez sur Enregistrer.

    Enregistrez la page sous logon.inc dans le dossier _private de votre site Web d'ouverture de session.
  6. Dans le menu Fichier, cliquez sur Fermer pour fermer le fichier logon.inc.

Test du site Web d'ouverture de session

Pour tester le site Web d'ouverture de session, procédez comme suit :
  1. Dans FrontPage 2003, dans le volet Liste des dossiers, cliquez avec le bouton droit sur Default.asp, puis cliquez sur Aperçu dans le navigateur.

    Le navigateur Web charge l'exemple de page d'accueil et indique que vous n'êtes pas connecté.
  2. Cliquez sur le lien Nonsecure page.

    La page se charge et indique que vous n'êtes pas connecté. Cliquez sur le lien Back to default pour revenir à la page par défaut.
  3. Cliquez sur le lien Password-Protected page.

    La page logon.asp se charge au lieu de la page protégée par mot de passe.
  4. Dans la zone User Name, tapez testuser, tapez password dans la zone Password, puis cliquez sur LOGON.

    La page protégée par mot de passe s'affiche et indique que vous êtes connecté en tant que testuser. Cliquez sur le lien Back to default pour revenir à la page par défaut. La page d'accueil se charge et indique que vous êtes connecté en tant que testuser.
  5. Cliquez sur le lien Nonsecure page.

    La page se charge et indique que vous êtes connecté en tant que testuser.

Personnalisation du site Web d'ouverture de session

Vous pouvez personnaliser l'exemple de site Web d'ouverture de session des manières suivantes :
  • Ajout de noms d'utilisateurs et de mots de passe : vous pouvez ouvrir la base de données. Pour cela, double-cliquez sur la base de données dans FrontPage 2003, puis ajoutez des utilisateurs à la table tblUsers.
  • Protection par mot de passe d'autres pages Web : pour protéger par mot de passe une autre page Web de votre site Web, vous devez enregistrer le fichier avec une extension de nom de fichier ASP, par exemple M apage.asp, puis ajouter les deux lignes suivantes tout en haut du fichier :
    <% @language="vbscript" %>
    <!--#include virtual="/logon/_private/logon.inc"-->
    
    La première ligne spécifie que vous utilisez Microsoft Visual Basic Scripting Edition (VBScript) comme langage de script et la deuxième ligne contient la fonctionnalité de noms d'utilisateurs et de mots de passe du fichier Include d'ouverture de session créé précédemment.

Plus d'informations

Les noms d'utilisateurs et les mots de passe stockés dans la base de données ne sont pas chiffrés. L'utilisation du masque de saisie de mot de passe ne permet pas non plus de chiffrer ces données. Pour cette raison et d'autres, les bases de données Access ne doivent pas être utilisées pour des sites Web de production. Pour plus d'informations sur la façon de protéger les communications HTTP entre le client et le serveur, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
299525  (http://support.microsoft.com/kb/299525/ ) Comment faire pour installer SSL à l'aide de IIS 5.0 et de Certificate Server 2.0
299875   (http://support.microsoft.com/kb/299875/ ) Comment faire pour implémenter SSL dans IIS

Références

Pour plus d'informations sur la façon d'intégrer des pages Active Server Pages (ASP) dans des bases de données, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
299987  (http://support.microsoft.com/kb/299987/ ) Comment faire pour utiliser une base de données et des sessions ASP pour implémenter la sécurité ASP
300382  (http://support.microsoft.com/kb/300382/ ) Comment faire pour créer une connexion à la base de données à partir d'une page ASP : exemples de chaînes de connexion
318287  (http://support.microsoft.com/kb/318287/ ) Ce dont vous avez besoin pour utiliser des pages ASP (Active Server Pages) dans FrontPage 2002

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office FrontPage 2003
Mots-clés : 
kbdatabase kbasp kbhowtomaster KB825498
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store