How to use a database for user names and passwords in FrontPage 2000 (321503)
The information in this article applies to:
This article was previously published under Q321503
For a Microsoft FrontPage 2002 version of this article, see 321439.
SUMMARY
This step-by-step article explains how to create a simple file security solution by using Microsoft FrontPage 2000, 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 2000 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 2000
Before you can use the ASP features in FrontPage 2000, you must install the components that are listed in the following Microsoft Knowledge Base article:
312638 Description of the items that are required to use Active Server Pages (ASP) in FrontPage 2000
Step 2 - Create a new Web in FrontPage 2000Note 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 Web.
- 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 then save it to your desktop.
- In the Tables section, click New.
- 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.
- 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 again to import the file.
- Click No if you are prompted to add a database connection.
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 the secure page that you 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 logon 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 unsecure.asp in the root folder of your logon 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, verify 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/15/2005 |
---|
Keywords: | kbhowto kbHOWTOmaster KB321503 |
---|
|