Utilizzo di un database per nomi utente e password in FrontPage 2002

Traduzione articoli Traduzione articoli
Identificativo articolo: 321439 - Visualizza i prodotti a cui si riferisce l?articolo.
Per la versione di questo articolo relativa a Microsoft FrontPage 2000, vedere 321503.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto in dettaglio come creare una semplice soluzione di protezione file utilizzando Microsoft FrontPage 2002, le pagine ASP e un database di Microsoft Access.

Note importanti

  • Il codice di esempio fornito in questo articolo non è destinato a sostituire la funzionalità di protezione incorporata in FrontPage. Gli esempi sono progettati per fornire un semplice meccanismo di protezione solo per gli utenti che esplorano il sito Web. Pertanto la funzionalità di protezione di FrontPage 2002 non viene integrata con i nomi utente e le password aggiunte al database di Microsoft Access.
  • I nomi utente e le password digitati vengono trasmessi attraverso Internet come testo normale. Per migliorare la protezione, si consiglia di utilizzare un server Web che supporti la crittografia SSL (Secure Sockets Layer). Per ulteriori informazioni, contattare l'amministratore del sito Web o il provider di servizi Internet (ISP).

Passaggio 1 - Preparazione all'utilizzo delle funzionalità ASP in FrontPage 2002

Per utilizzare le funzionalità ASP in FrontPage 2002, è necessario installare i componenti citati nel seguente articolo della Microsoft Knowledge Base:
318287 Elementi necessari per l'utilizzo di pagine ASP in FrontPage 2002

Passaggio 2 - Creazione di un nuovo sito Web in FrontPage 2002

Nota Affinché questo codice di esempio funzioni correttamente, è necessario assicurarsi che il nome del sito Web sia LOGON e che sia un sito secondario della radice del sito Web.
  1. Scegliere Nuovo dal menu File, quindi Pagina o Web.
  2. Nel riquadro delle attività fare clic su Modelli sito Web.
  3. Nell'elenco dei modelli fare clic su Web vuoto.
  4. Specificare la posizione del sito Web sul server utilizzando la sintassi seguente:
    http://server/logon/
    dove server rappresenta il nome del server Web che supporta ASP.
  5. Scegliere OK.

Passaggio 3 - Creazione di un database utilizzando Microsoft Access

  1. Avviare Microsoft Access.
  2. Scegliere Nuovo dal menu File.
  3. Nell'elenco di scelte possibili fare clic su Database vuoto.
  4. Assegnare al file il nome logon.mdb e salvarlo sul desktop.
  5. Nella sezione Tabelle fare clic su Nuovo.
  6. Nell'elenco fare clic su Visualizzazione Struttura, quindi scegliere OK.
  7. Creare due campi:
    1. Per Nome campo digitare UID. Per Tipo dati fare clic su Testo, quindi su Chiave primaria.
    2. Per Nome campo digitare PWD. Per Tipo dati fare clic su Testo.
  8. Scegliere Salva dal menu File. Assegnare il nome tblUsers alla tabella e scegliere OK.
  9. Scegliere Visualizzazione Foglio dati dal menu Visualizza.
  10. Nella colonna UID digitare testuser. Nella colonna PWD digitare password.
  11. Scegliere Chiudi dal menu File per chiudere la tabella.
  12. Chiudere Microsoft Access.
Nota Per motivi di protezione le password sono limitate a un misto di lettere maiuscole, lettere minuscole e numeri.

Passaggio 4 - Importazione del database di Microsoft Access

  1. Scegliere Importa dal menu File.
  2. Scegliere Aggiungi file.
  3. Selezionare il desktop nell'elenco Cerca in.
  4. Fare clic sul file logon.mdb creato nel Passaggio 3, quindi fare clic su Apri.
  5. Scegliere Modifica.
  6. Cambiare l'URL in _private/logon.mdb e scegliere OK.
  7. Scegliere OK per importare il file.
  8. Se viene chiesto di aggiungere una connessione al database, fare clic su No.

Passaggio 5 - Creazione delle pagine ASP

Per questo esempio è necessario creare diversi file. Creare innanzitutto una home page per il sito Web, una pagina non protetta e una pagina protetta per i test, quindi la pagina Web di accesso e il file di inclusione di accesso.

Passaggio 5a - Creazione della home page

Questa pagina viene utilizzata come pagina predefinita del sito e include i collegamenti alla pagina non protetta e alla pagina protetta che verranno create più avanti.
  1. Nella barra degli strumenti di FrontPage fare clic su Nuova pagina.
  2. Passare alla visualizzazione HTML ed eliminare tutto il codice HTML esistente.
  3. Digitare o incollare il seguente codice nella pagina:
    <% @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="secure.asp">Secure Page</a></li>
    <li><a href="unsecure.asp">Unsecure Page</a></li>
    </ul>
    </body>
    </html>
  4. Salvare la pagina come default.asp nella cartella radice del sito Web.
  5. Chiudere la pagina scegliendo Chiudi dal menu File.

Passaggio 5b - Creazione di una pagina non protetta

Questa è una pagina ASP di base che chiunque può esplorare.
  1. Nella barra degli strumenti di FrontPage fare clic su Nuova pagina.
  2. Passare alla visualizzazione HTML ed eliminare tutto il codice HTML esistente.
  3. Digitare o incollare il seguente codice nella pagina:
    <% @language="vbscript" %>
    <html>
    <head><title>Unsecure Page</title></head>
    <body>
    <h3>Unsecure 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>
  4. Salvare la pagina come default.asp nella cartella radice del sito Web.
  5. Chiudere la pagina scegliendo Chiudi dal menu File.

Passaggio 5c - Creazione di una pagina protetta

La pagina in questo passaggio è uguale alla pagina non protetta creata nel Passaggio 5b, salvo il fatto che è necessario aggiungere la seguente riga di codice nella parte superiore della pagina:
<!--#include virtual="/logon/_private/logon.inc"-->
L'aggiunta di questa riga di codice a una pagina Web ASP la rende una pagina Web "protetta".
  1. Nella barra degli strumenti di FrontPage fare clic su Nuova pagina.
  2. Passare alla visualizzazione HTML ed eliminare tutto il codice HTML esistente.
  3. Digitare o incollare il seguente codice nella pagina:
    <% @language="vbscript" %>
    <!--#include virtual="/logon/_private/logon.inc"-->
    <html>
    <head><title>Secure Page</title></head>
    <body>
    <h3>Secure 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>
  4. Salvare la pagina come secure.asp nella cartella radice del sito Web di accesso.
  5. Chiudere la pagina scegliendo Chiudi dal menu File.

Passaggio 5d - Creazione della pagina di accesso

La pagina di accesso è ideata al fine di somigliare a una finestra di dialogo di accesso standard di Windows. Gli utenti che tentano di accedere alla pagina protetta vengono indirizzati a questa pagina per digitarvi il nome utente e la password.
  1. Nella barra degli strumenti di FrontPage fare clic su Nuova pagina.
  2. Passare alla visualizzazione HTML ed eliminare tutto il codice HTML esistente.
  3. Digitare o incollare il seguente codice nella pagina:
    <% @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>
  4. Salvare la pagina come logon.asp nella cartella radice del sito Web di accesso.
  5. Chiudere la pagina scegliendo Chiudi dal menu File.

Passaggio 5e - Creazione del file di inclusione di accesso

Questo file di inclusione fornisce la funzionalità per l'immissione del nome utente e della password e viene utilizzato sia dalla pagina protetta che dalla pagina di accesso.
  1. Nella barra degli strumenti di FrontPage fare clic su Nuova pagina.
  2. Passare alla visualizzazione HTML ed eliminare tutto il codice HTML esistente.
  3. Digitare o incollare il seguente codice nella pagina:
    <%
      ' 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
    %>
  4. Salvare la pagina come logon.inc nella cartella _private del sito Web di accesso.
  5. Chiudere la pagina scegliendo Chiudi dal menu File.

Passaggio 6 - Test della pagina Web di accesso

  1. In Elenco cartelle di FrontPage fare clic su default.asp. Nella barra degli strumenti di FrontPage scegliere Visualizza anteprima nel browser.
  2. Nel browser viene caricata la home page di esempio con l'indicazione che non è stato eseguito l'accesso.
  3. Fare clic sul collegamento relativo alla pagina non protetta. La pagina viene caricata con l'indicazione che non è stato eseguito l'accesso. Fare clic sul collegamento per tornare alla pagina predefinita.
  4. Fare clic sul collegamento relativo alla pagina protetta. Viene caricata la pagina di accesso anziché la pagina protetta.
  5. Digitare testuser come nome utente, digitare password come password, quindi scegliere LOGON.
  6. La pagina protetta viene visualizzata con l'indicazione che è stato eseguito l'accesso come testuser. Fare clic sul collegamento per tornare alla pagina predefinita.
  7. La home page di esempio viene caricata con l'indicazione che è stato eseguito l'accesso come testuser.
  8. Fare clic sul collegamento relativo alla pagina non protetta. La pagina viene caricata con l'indicazione che è stato eseguito l'accesso come testuser.

Personalizzazione dell'esempio di accesso

È possibile personalizzare l'esempio di accesso nei modi seguenti:
  • Aggiungere nomi utente e password: è possibile aprire il database facendovi doppio clic in FrontPage, quindi aggiungere gli utenti alla tabella tblUsers.
  • Proteggere le altre pagine Web: per proteggere un'altra pagina Web nel sito Web, è necessario salvare il file con un'estensione ASP, ad esempio mypage.asp, quindi aggiungere le due righe seguenti all'inizio del file:
    <% @language="vbscript" %>
    <!--#include virtual="/logon/_private/logon.inc"-->
    Nella prima riga viene specificato che si utilizza Microsoft Visual Basic Scripting Edition (VBScript) per il linguaggio di scripting, mentre nella seconda riga è inclusa la funzionalità per l'immissione del nome utente e della password del file di inclusione di accesso creato in precedenza.

Riferimenti

Per ulteriori informazioni sull'integrazione di pagine ASP con database e protezione, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
299987 Utilizzo di database e sessioni ASP per implementare la protezione per ASP
300382 Creazione di una connessione di database da una pagina ASP in IIS

Proprietà

Identificativo articolo: 321439 - Ultima modifica: lunedì 25 febbraio 2008 - Revisione: 5.2
Le informazioni in questo articolo si applicano a
  • Microsoft FrontPage 2002 Standard Edition
Chiavi: 
kbhowtomaster kbdatabase kbprogramming kbasp KB321439
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com