Freigeben über


HttpServerUtility.Transfer Methode

Definition

Beendet die Ausführung der aktuellen Seite und startet die Ausführung einer neuen Seite für die aktuelle Anforderung.

Überlädt

Transfer(String)

Beendet für die aktuelle Anforderung die Ausführung der aktuellen Seite und startet die Ausführung einer neuen Seite unter Verwendung des angegebenen URL-Pfads für die Seite.

Transfer(String, Boolean)

Beendet die Ausführung der aktuellen Seite und startet die Ausführung einer neuen Seite unter Verwendung des angegebenen URL-Pfads für die Seite. Gibt an, ob die QueryString-Auflistung und die Form-Auflistung gelöscht werden soll.

Transfer(IHttpHandler, Boolean)

Beendet die Ausführung der aktuellen Seite und beginnt die Ausführung einer neuen Anforderung mithilfe eines benutzerdefinierten HTTP-Handlers, der die IHttpHandler-Schnittstelle implementiert und angibt, ob die QueryString-Auflistung und die Form-Auflistung gelöscht werden sollen.

Transfer(String)

Beendet für die aktuelle Anforderung die Ausführung der aktuellen Seite und startet die Ausführung einer neuen Seite unter Verwendung des angegebenen URL-Pfads für die Seite.

public:
 void Transfer(System::String ^ path);
public void Transfer (string path);
member this.Transfer : string -> unit
Public Sub Transfer (path As String)

Parameter

path
String

Der URL-Pfad für die neue auszuführende Seite auf dem Server.

Hinweise

Die zu übertragene Seite sollte eine andere ASPX-Seite sein. Beispielsweise ist eine Übertragung auf eine ASP- oder ASMX-Seite ungültig. Die Transfer Methode behält die QueryString Und-Auflistungen Form bei.

Transfer Aufrufe End, die nach Abschluss eine ThreadAbortException Ausnahme auslösen.

ASP.NET überprüft nicht, ob der aktuelle Benutzer berechtigt ist, die von der Transfer Methode bereitgestellte Ressource anzuzeigen. Obwohl die ASP.NET Autorisierungs- und Authentifizierungslogik ausgeführt wird, bevor der ursprüngliche Ressourcenhandler aufgerufen wird, ruft ASP.NET den durch die Transfer Methode angegebenen Handler direkt auf und führt die Authentifizierungs- und Autorisierungslogik für die neue Ressource nicht erneut aus. Wenn die Sicherheitsrichtlinie Ihrer Anwendung clients die entsprechende Autorisierung für den Zugriff auf die Ressource erfordert, sollte die Anwendung die Erneute Dokumenterstellung erzwingen oder einen benutzerdefinierten Zugriffssteuerungsmechanismus bereitstellen.

Sie können die Erneute Dokumenterstellung erzwingen, indem Sie die Redirect Methode anstelle der Transfer Methode verwenden. Die Redirect Methode führt eine clientseitige Umleitung aus, in der der Browser die neue Ressource anfordert. Da diese Umleitung eine neue Anforderung ist, die das System eingibt, wird sie allen Authentifizierungs- und Autorisierungslogiken von Internetinformationsdienste (IIS) und ASP.NET Sicherheitsrichtlinie unterliegen.

Sie können überprüfen, ob der Benutzer über die Berechtigung zum Anzeigen der Ressource verfügt, indem Sie eine benutzerdefinierte Autorisierungsmethode einbeziehen, die die IsInRole Methode verwendet, bevor die Anwendung die Transfer Methode aufruft.

Gilt für

Transfer(String, Boolean)

Beendet die Ausführung der aktuellen Seite und startet die Ausführung einer neuen Seite unter Verwendung des angegebenen URL-Pfads für die Seite. Gibt an, ob die QueryString-Auflistung und die Form-Auflistung gelöscht werden soll.

public:
 void Transfer(System::String ^ path, bool preserveForm);
public void Transfer (string path, bool preserveForm);
member this.Transfer : string * bool -> unit
Public Sub Transfer (path As String, preserveForm As Boolean)

Parameter

path
String

Der URL-Pfad für die neue auszuführende Seite auf dem Server.

preserveForm
Boolean

true, um die QueryString-Auflistung und die Form-Auflistung beizubehalten; false, um die QueryString-Auflistung und die Form-Auflistung zu löschen.

Ausnahmen

Die aktuelle Seitenanforderung ist ein Rückruf.

Beispiele

Im folgenden Beispiel wird eine neue Seite im selben Verzeichnis wie die aktuelle Seite ausgeführt.

Server.Transfer("Logon.aspx", true);

Server.Transfer("Logon.aspx", true)

Hinweise

Die zu übertragene Seite sollte eine andere ASPX-Seite sein. Beispielsweise ist eine Übertragung auf eine ASP- oder ASMX-Seite ungültig.

Transfer Aufrufe End, die nach Abschluss eine ThreadAbortException Ausnahme auslösen.

Wenn Sie den preserveForm Parameter trueauf festlegen, kann die Zielseite mithilfe der PreviousPage Eigenschaft auf den Ansichtsstatus der vorherigen Seite zugreifen.

Für Sicherheitszwecke sollten Sie das enableViewStateMac Attribut auf festlegen true. ASP.NET überprüft nicht, ob der aktuelle Benutzer berechtigt ist, die von der Transfer Methode bereitgestellte Ressource anzuzeigen. Obwohl die ASP.NET Autorisierungs- und Authentifizierungslogik ausgeführt wird, bevor der ursprüngliche Ressourcenhandler aufgerufen wird, ruft ASP.NET den durch die Transfer Methode angegebenen Handler direkt auf und führt die Authentifizierungs- und Autorisierungslogik für die neue Ressource nicht erneut aus. Wenn die Sicherheitsrichtlinie Ihrer Anwendung clients die entsprechende Autorisierung für den Zugriff auf die Ressource erfordert, sollte die Anwendung die Erneute Dokumenterstellung erzwingen oder einen benutzerdefinierten Zugriffssteuerungsmechanismus bereitstellen.

Sie können die Erneute Dokumenterstellung erzwingen, indem Sie die Redirect Methode anstelle der Transfer Methode verwenden. Die Redirect Methode führt eine clientseitige Umleitung aus, in der der Browser die neue Ressource anfordert. Da diese Umleitung eine neue Anforderung ist, die das System eingibt, wird sie allen Authentifizierungs- und Autorisierungslogiken von Internetinformationsdienste (IIS) und ASP.NET Sicherheitsrichtlinie unterliegen.

Sie können überprüfen, ob der Benutzer über die Berechtigung zum Anzeigen der Ressource verfügt, indem Sie eine benutzerdefinierte Autorisierungsmethode einbeziehen, die die IsInRole Methode verwendet, bevor die Anwendung die Transfer Methode aufruft.

Gilt für

Transfer(IHttpHandler, Boolean)

Beendet die Ausführung der aktuellen Seite und beginnt die Ausführung einer neuen Anforderung mithilfe eines benutzerdefinierten HTTP-Handlers, der die IHttpHandler-Schnittstelle implementiert und angibt, ob die QueryString-Auflistung und die Form-Auflistung gelöscht werden sollen.

public:
 void Transfer(System::Web::IHttpHandler ^ handler, bool preserveForm);
public void Transfer (System.Web.IHttpHandler handler, bool preserveForm);
member this.Transfer : System.Web.IHttpHandler * bool -> unit
Public Sub Transfer (handler As IHttpHandler, preserveForm As Boolean)

Parameter

handler
IHttpHandler

Der HTTP-Handler, der den IHttpHandler implementiert, an den die aktuelle Anforderung übertragen werden soll.

preserveForm
Boolean

true, um die QueryString-Auflistung und die Form-Auflistung beizubehalten; false, um die QueryString-Auflistung und die Form-Auflistung zu löschen.

Ausnahmen

Die aktuelle Seitenanforderung ist ein Rückruf.

Hinweise

Sie können benutzerdefinierte HTTP-Handler schreiben, um bestimmte, vordefinierte Typen von HTTP-Anforderungen in jeder Sprache zu verarbeiten, die mit der Common Language Specification (CLS) kompatibel ist. Ausführbarer Code, der in den HTTP-Handlerklassen definiert ist, anstatt herkömmliche ASP-Seiten (auch als klassische ASP-Seiten bezeichnet) oder ASP.NET Seiten reagieren auf diese spezifischen Anforderungen. HTTP-Handler ermöglichen die Interaktion mit den Anforderungs- und Antwortdiensten auf niedriger Ebene eines Webservers, der Internetinformationsdienste (IIS) ausführt, und sie bieten Funktionen, die mit ISAPI-Erweiterungen vergleichbar sind, aber mit einem einfacheren Programmiermodell.

Wenn Sie den preserveForm Parameter trueauf festlegen, kann die Zielseite mithilfe der PreviousPage Eigenschaft auf den Ansichtsstatus der vorherigen Seite zugreifen.

Für Sicherheitszwecke sollten Sie das enableViewStateMac Attribut auf festlegen true. ASP.NET überprüft nicht, ob der aktuelle Benutzer berechtigt ist, die von der Transfer Methode bereitgestellte Ressource anzuzeigen. Obwohl die ASP.NET Autorisierungs- und Authentifizierungslogik ausgeführt wird, bevor der ursprüngliche Ressourcenhandler aufgerufen wird, ruft ASP.NET den durch die Transfer Methode angegebenen Handler direkt auf und führt keine Authentifizierungs- und Autorisierungslogik für die neue Ressource erneut aus. Wenn die Sicherheitsrichtlinie für Ihre Anwendung Clients benötigt, um auf die Ressource zuzugreifen, sollte die Anwendung die erneute Dokumenterstellung erzwingen oder einen benutzerdefinierten Zugriffssteuerungsmechanismus bereitstellen.

Sie können die Erneute Dokumenterstellung erzwingen, indem Sie die Redirect Methode anstelle der Transfer Methode verwenden. Die Redirect Methode führt eine clientseitige Umleitung aus, in der der Browser die neue Ressource anfordert. Da diese Umleitung eine neue Anforderung ist, die das System eingibt, wird sie allen Authentifizierungs- und Autorisierungslogik sowohl der IIS- als auch ASP.NET Sicherheitsrichtlinie unterliegen.

Sie können überprüfen, ob der Benutzer über die Berechtigung zum Anzeigen der Ressource verfügt, indem Sie eine benutzerdefinierte Autorisierungsmethode einbeziehen, die die IsInRole Methode verwendet, bevor die Anwendung die Transfer Methode aufruft.

Gilt für