This documentation is archived and is not being maintained.

HttpServerUtility.Transfer Method (IHttpHandler, Boolean)

Note: This method is new in the .NET Framework version 2.0.

Terminates execution of the current page and begins execution of a new request by using a custom HTTP handler that implements the IHttpHandler interface and specifies whether to clear the QueryString and Form collections.

Namespace: System.Web
Assembly: System.Web (in system.web.dll)

public void Transfer (
	IHttpHandler handler,
	bool preserveForm
public void Transfer (
	IHttpHandler handler, 
	boolean preserveForm
public function Transfer (
	handler : IHttpHandler, 
	preserveForm : boolean



The HTTP handler that implements the IHttpHandler to transfer the current request to.


true to preserve the QueryString and Form collections; false to clear the QueryString and Form collections.

You can write custom HTTP handlers to process specific, predefined types of HTTP requests in any language that is compliant with the Common Language Specification (CLS). Executable code that is defined in the HTTP handler classes, rather than in conventional ASP or ASP.NET Web pages, responds to these specific requests. HTTP handlers give you a means of interacting with the low-level request and response services of a Web server running Microsoft Internet Information Services (IIS) and provide functionality much like ISAPI extensions but with a simpler programming model.

If you set preserveForm to true and if the enableViewStateMac attribute of the pages configuration element is true, ASP.NET will raise an exception when the Transfer method is executed because the view state from the page that calls the Transfer method is not valid on the destination page. One of the preserved form fields on the calling page is the hidden __VIEWSTATE form field, which holds the view state for the page. When enableViewStateMac is true, ASP.NET runs a message authentication check on the view state of the destination page when the page is posted back from the client and the check will fail. For security purposes, you should keep the enableViewStateMac attribute set to true; however, there are other methods available to transfer Forms data. For more information, including recommended solutions, see article Q316920, "View State Is Invalid Error Message When You Use Server.Transfer" in the Microsoft Knowledge Base at

ASP.NET does not verify that the current user is authorized to view the resource that is delivered by the Transfer method. Although the ASP.NET authorization and authentication logic runs before the original resource handler is called, ASP.NET directly calls the handler indicated by the Transfer method and does not rerun authentication and authorization logic for the new resource. If the security policy for your application requires clients to have proper authorization to access the resource, the application should force reauthorization or provide a custom access-control mechanism.

You can force reauthorization by using the Redirect method instead of the Transfer method. The Redirect method performs a client-side redirect in which the browser requests the new resource. Because this redirect is a new request entering the system, it is subjected to all the authentication and authorization logic of both the IIS and ASP.NET security policy.

You can verify that the user has permission to view the resource by incorporating a custom authorization method that uses the IsInRole method before the application calls the Transfer method.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0