IIS Samples - ISAPI Redirect

Redirect is a sample ISAPI extension to demonstrate redirecting a request.

Important   These samples are provided for educational purposes only. They are not intended to be used in a production environment, have not been tested in a production environment, and Microsoft does not provide technical support for them.

 

Sample Overview
Requirements
Location of the Source Code
Build and Install the Sample
Run the Sample
Sample Output
Helpdesk

 

Sample Overview

This sample redirects requests to a URL specified on the query string. If no query string is present, or if the query string is not identified as a legal target for redirection, Redirect.dll will return a page to the client with brief instructions for its use. Redirections to a resource on the same server as the dll will be handled by IIS and will be transparent to the browser. Redirections to a resource on a different server will result in an HTTP 302 response instructing the browser to obtain the resource from another location.

 

Requirements

This sample requires the installation of the following software to function properly:

to top

 

Location of the Source Code

IIS samples are included in the IIS Software Developer Kit (SDK). You can download the IIS SDK from Platform SDK Update. You can view the SDK at MSDN Online. In the table of contents at MSDN Online, click Web Development, Server Technologies, Internet Information Services (IIS), SDK Documentation, Internet Information Services, Samples.

The following source code files are required for this sample:

File Description
Redirect.sln Redirect Visual Studio .NET solution file, required to build this sample in Visual Studio .NET.
Redirect.vcproj Redirect Visual Studio .NET C Project file, required to build this sample in Visual Studio .NET.
Redirect.dsp, Redirect.dsw Redirect Visual Studio 6.0 project files, required to build this sample in Visual Studio Version 6.
Redirect.cpp Redirect source modules containing the code that implements the sample.
Redirect.def Redirect.dll definition containing code for creating the sample.
MAKEFILE Redirect makefile for command line compilation

to top

 

Build and Install the Sample

To build this sample using the Visual C++ IDE, the following steps must be performed:

  1. Open the solution (VS.NET) or desktop (VS6) file to open the project.
  2. Click Build to create the DLL.

To build and run this sample without using the Visual C++ IDE, the following steps must be performed:

  1. Type NMAKE All from the command line. For example, if your sample files are located in a folder called C:\MySamples, type the following at the command line:
    cd /d c:\MySamples
    NMAKE All

 

To install this sample, the following steps must be performed:

  1. Copy Redirect.dll to a physical folder on your computer. For example, create a folder called C:\Samples and copy Redirect.dll to that folder.
  2. Create a virtual directory that maps to the physical folder containing your files. To create a virtual directory, open the Internet Information Services (IIS) Manager by clicking Start, Run, type inetmgr in the text box and click OK. Right-click on the Web site where you want to create a virtual directory, click New, and click Virtual Directory. In the Alias text box, type the name you want for your virtual directory, for example, Redirect. In the Directory text box, type the path to the folder that contains your files.
  3. Configure strong security on your new virtual directory. Right-click the virtual directory name, click Properties, and click the Directory Security tab. Press F1 for tips on securing your virtual directory.
  4. Use Windows Explorer to set restricted access control on the sample .dll file in its physical folder. For more information, click Start, Help and Support, and search for Access Control.
to top

 

Run the Sample

In order to run this sample, follow the instructions listed below:

  1. Browse to your sample Web files in Internet Explorer (IE). For example, if your files are in a virtual directory called Redirect, type http://localhost/Redirect/Redirect.dll in the Address bar of IE. For example, the following URL entered on the address line of Internet Explorer will redirect the request to the specified URL on a different server:

    http://server/Redirect.dll?http://server2/virtualdir/file.htm

    The following URL entered on the address line will redirect the request to the specified resource on the same server:

    http://server/Redirect.dll?/virtualdir/file.htm

to top

 

Sample Output

Output describing usage is displayed after you perform step 1 from Run the Sample if no redirection target is specified. If a target is specified, the output will be the target.

to top

 

Help Desk

If here you do not find answers to your questions, visit the Microsoft Help and Support Web site.

Problem Possible Solution
When browsing to the ASP page, IE returns HTTP 404 - File not found Verify that you have created a virtual directory of the same name you are typing in the Address box of IE....
When building the dll, C++ or VB returns the a permissions error. Once you have called the dll from your web page, your system considers it a loaded dll. You must unload it to build it again, either by unloading the ASP application or deleting the dll from system32\dllcache.
When building the dll, C++ returns a permissions error. Once you have called the dll from your web page, your system considers it a loaded dll. You must unload it to build it again, either by unloading the ASP application or deleting the dll from system32\dllcache.
When browsing to the dll, IE gives you a permissions error. The folder and virtual directory must have Execute permissions set on them.

to top

© 1997-2002 Microsoft Corporation. All rights reserved.