How to use a database for user names and passwords in FrontPage 2002 (321439)
The information in this article applies to:
This article was previously published under Q321439
For a Microsoft FrontPage 2000 version of this article, see 321503.
SUMMARY This step-by-step article explains how to create a simple
file security solution by using Microsoft FrontPage 2002, Active Server Pages
(ASP), and a Microsoft Access database. Important notes- The sample code in this article is not designed as a
replacement for the FrontPage built-in security functionality. The samples are
designed to provide a simple security mechanism only for users who are browsing
to your Web site. As such, FrontPage 2002 security does not integrate with the
user names and passwords that are added to the Microsoft Access
database.
- The user names and passwords that are typed in are
transmitted across the Internet in plain text. For greater security, Microsoft
recommends that you use a Web server that can use Secure Sockets Layer (SSL)
encryption. For more information, please ask your Web site administrator or
Internet Service Provider (ISP).
back to the top
Step 1 - Get ready to use the ASP features in FrontPage 2002 Before you can use the ASP features in FrontPage 2002, you must
install the components that are listed in the following Microsoft Knowledge
Base article:
318287 What you need to use Active Server Pages (ASP) in FrontPage 2002
Step 2 - Create a new Web in FrontPage 2002Note For this sample code to work correctly, you must make sure that
the Web name is LOGON, and that it is a subweb off the root of your Web site.
- On the File menu, click New, and then click Page or Web.
- In the task pane, click Web Site Templates.
- In the list of templates, click Empty Web.
- Specify the location of the Web on your server by using the
following syntax
http://your server/logon/ where your server is the name of your
ASP-enabled Web server. - Click OK.
back to the top
Step 3 - Create a database by using Microsoft Access- Start Microsoft Access.
- On the File menu, click New.
- In the list of choices, click Blank Database.
- Name the file logon.mdb and save it
to your desktop.
- In the Tables section, click New.
- In the list, click Design View, and then click OK.
- Create two fields:
- For the Field Name, type UID. For the Data Type, click Text, and then click Primary Key.
- For the Field Name, type PWD. For the Data Type, click Text.
- On the File menu, click Save. Name the table tblUsers, and then click OK.
- On the View menu, click Datasheet View.
- In the UID column, type testuser. In the PWD column, type password.
- On the File menu, click Close to close the table.
- Quit Microsoft Access.
Note For security reasons, passwords are restricted to a mixture of uppercase letters, lowercase letters, and numbers.
back to the top
Step 4 - Import the Microsoft Access database- On the File menu, click Import.
- Click Add File.
- In the Look in list, click your
desktop.
- Click the logon.mdb file that you created in Step
3, and then click Open.
- Click Modify.
- Change the URL to
_private/logon.mdb, and then click OK.
- Click OK to import the file.
- If you are prompted to add a database connection, click No.
back to the top
Step 5 - Create the ASP pages You must create several files to work with this sample. First,
you create a home page for your
Web site, an unsecure page and a
secure page for testing, and then
the logon Web page and the
logon include file. Step 5a - Create the Home Page This page serves as the default page for your site and includes
links to the unsecure page and
secure page that you will create
later.
- On the FrontPage toolbar, click New Page.
- Switch to HTML view, and then delete all the existing HTML
code.
- Type or paste the following code into the page:
<% @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>
- Save the page as default.asp in the root folder of your Web.
- Close the page by clicking Close on the File menu.
back to the top
Step 5b - Create an unsecure page This page is a basic ASP page that anyone can browse.
- On the FrontPage toolbar, click New Page.
- Switch to HTML view, and then delete all the existing HTML
code.
- Type or paste the following code into the page:
<% @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>
- Save the page as default.asp in the root folder of your Web.
- Close the page by clicking Close on the File menu.
back to the top
Step 5c - Create a secure page The page in this step is the same as the unsecure page that you
created in Step 5b, except that
you add the following line of code near the top of the page:
<!--#include virtual="/logon/_private/logon.inc"-->
Adding this line of code to any ASP Web page makes the page a "secure"
Web page.
- On the FrontPage toolbar, click New Page.
- Switch to HTML view, and then delete all the existing HTML
code.
- Type or paste the following code into the page:
<% @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>
- Save the page as secure.asp in the root folder of your logon Web.
- Close the page by clicking Close on the File menu.
back to the top
Step 5d - Create the logon page The logon page is designed to resemble a standard Windows logon
dialog box. Users who try to access the secure page are sent to this page to type their user
name and password.
- On the FrontPage toolbar, click New Page.
- Switch to HTML view, and then delete all the existing HTML
code.
- Type or paste the following code into the page:
<% @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"> </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> </td>
<td colspan="2" align="left">Please type your user name and password.</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">Site</td>
<td align="left"><%=Request.ServerVariables("SERVER_NAME")%>  </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">User Name</td>
<td align="left"><input name="UID" type="text" size="20"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">Password</td>
<td align="left"><input name="PWD" type="password" size="20"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="2" align="center"><input type="submit" value="LOGON"></td>
<td> </td>
</tr>
</table>
</form>
</center></div>
</body>
</html>
- Save the page as logon.asp in the root folder of your logon Web.
- Close the page by clicking Close on the File menu.
back to the top
Step 5e - Create the logon include file This include file provides the user name and password
functionality and is used by both the secure
page and the logon
page.
- On the FrontPage toolbar, click New Page.
- Switch to HTML view, and then delete all the existing HTML
code.
- Type or paste the following code into the page:
<%
' 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
%> - Save the page as logon.inc in the _private folder of your logon Web.
- Close the page by clicking Close on the File menu.
back to the top
Step 6 - Test the logon web- In the FrontPage Folder List, click default.asp. On the FrontPage toolbar, click Preview in Browser.
- Your browser now loads the sample home page and shows that
you are not logged on.
- Click the link for the unsecure page. The page loads and
shows that you are not logged on. Click the link back to the default
page.
- Click the link to the secure page. The logon page loads
instead of the secure page.
- Type testuser for the user name,
type password for the password, and then click LOGON.
- The secure page appears and shows that you are logged on as
testuser. Click the link back to the default page.
- The sample home page loads and shows that you are logged on
as testuser.
- Click the link for the unsecure page. The page loads and
shows that you are logged on as testuser.
back to the top
Customize the logon sample You can customize the logon sample in the following ways:
back to the top
REFERENCES
For more information about integrating Active Server Pages (ASP) with databases and security, click the following article numbers to view the articles in the Microsoft Knowledge Base:
299987
How to use database and ASP sessions to implement ASP security
300382 How to create a database connection from an ASP page in IIS
back to the top
Modification Type: | Major | Last Reviewed: | 9/19/2005 |
---|
Keywords: | kbDatabase kbASP kbProgramming kbHOWTOmaster KB321439 |
---|
|