Sdílet prostřednictvím


HttpServerUtility.Transfer Metoda

Definice

Ukončí spuštění aktuální stránky a spustí spuštění nové stránky pro aktuální požadavek.

Přetížení

Transfer(String)

U aktuálního požadavku ukončí spuštění aktuální stránky a spustí spuštění nové stránky pomocí zadané cesty URL stránky.

Transfer(String, Boolean)

Ukončí provádění aktuální stránky a spustí spuštění nové stránky pomocí zadané cesty URL stránky. Určuje, jestli se mají vymazat kolekce QueryString a Form.

Transfer(IHttpHandler, Boolean)

Ukončí provádění aktuální stránky a spustí spuštění nového požadavku pomocí vlastní obslužné rutiny HTTP, která implementuje rozhraní IHttpHandler a určuje, zda se mají vymazat QueryString a Form kolekce.

Transfer(String)

U aktuálního požadavku ukončí spuštění aktuální stránky a spustí spuštění nové stránky pomocí zadané cesty URL stránky.

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

Parametry

path
String

Cesta URL nové stránky na serveru, která se má provést.

Poznámky

Stránka převedená na jinou .aspx stránku. Například přenos na .asp nebo stránku .asmx není platný. Metoda Transfer zachovává kolekce QueryString a Form.

Transfer volání End, která při dokončení vyvolá výjimku ThreadAbortException.

ASP.NET neověřuje, že aktuální uživatel má oprávnění k zobrazení prostředku dodaného metodou Transfer. Přestože ASP.NET autorizace a logika ověřování běží před voláním původní obslužné rutiny prostředků, ASP.NET přímo volá obslužnou rutinu označenou metodou Transfer a nespustí znovu ověřovací a autorizační logiku pro nový prostředek. Pokud zásady zabezpečení vaší aplikace vyžadují, aby klienti měli pro přístup k prostředku odpovídající autorizaci, měla by aplikace vynutit opětovné ověření nebo poskytnout vlastní mechanismus řízení přístupu.

Opětovné ověřování můžete vynutit použitím metody Redirect místo metody Transfer. Metoda Redirect provádí přesměrování na straně klienta, ve kterém prohlížeč požaduje nový prostředek. Vzhledem k tomu, že toto přesměrování je nový požadavek, který zadává systém, podléhá veškeré logice ověřování a autorizace internetové informační služby (IIS) i ASP.NET zásad zabezpečení.

Můžete ověřit, že uživatel má oprávnění k zobrazení prostředku zahrnutím vlastní metody autorizace, která používá metodu IsInRole předtím, než aplikace volá metodu Transfer.

Platí pro

Transfer(String, Boolean)

Ukončí provádění aktuální stránky a spustí spuštění nové stránky pomocí zadané cesty URL stránky. Určuje, jestli se mají vymazat kolekce QueryString a Form.

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)

Parametry

path
String

Cesta URL nové stránky na serveru, která se má provést.

preserveForm
Boolean

true zachovat kolekce QueryString a Form; false vymazat kolekce QueryString a Form.

Výjimky

Aktuální požadavek na stránku je zpětné volání.

Příklady

Následující příklad spustí novou stránku ve stejném adresáři jako aktuální stránka.

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

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

Poznámky

Stránka převedená na jinou .aspx stránku. Například přenos na .asp nebo stránku .asmx není platný.

Transfer volání End, která při dokončení vyvolá výjimku ThreadAbortException.

Pokud nastavíte parametr preserveForm na true, cílová stránka bude mít přístup ke stavu zobrazení předchozí stránky pomocí vlastnosti PreviousPage.

Pro účely zabezpečení byste měli zachovat atribut enableViewStateMac nastavený na true. ASP.NET neověřuje, že aktuální uživatel má oprávnění k zobrazení prostředku dodaného metodou Transfer. Přestože ASP.NET autorizace a logika ověřování běží před voláním původní obslužné rutiny prostředků, ASP.NET přímo volá obslužnou rutinu označenou metodou Transfer a nespustí znovu ověřovací a autorizační logiku pro nový prostředek. Pokud zásady zabezpečení vaší aplikace vyžadují, aby klienti měli pro přístup k prostředku odpovídající autorizaci, měla by aplikace vynutit opětovné ověření nebo poskytnout vlastní mechanismus řízení přístupu.

Opětovné ověřování můžete vynutit použitím metody Redirect místo metody Transfer. Metoda Redirect provádí přesměrování na straně klienta, ve kterém prohlížeč požaduje nový prostředek. Vzhledem k tomu, že toto přesměrování je nový požadavek, který zadává systém, podléhá veškeré logice ověřování a autorizace internetové informační služby (IIS) i ASP.NET zásad zabezpečení.

Můžete ověřit, že uživatel má oprávnění k zobrazení prostředku zahrnutím vlastní metody autorizace, která používá metodu IsInRole předtím, než aplikace volá metodu Transfer.

Platí pro

Transfer(IHttpHandler, Boolean)

Ukončí provádění aktuální stránky a spustí spuštění nového požadavku pomocí vlastní obslužné rutiny HTTP, která implementuje rozhraní IHttpHandler a určuje, zda se mají vymazat QueryString a Form kolekce.

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)

Parametry

handler
IHttpHandler

Obslužná rutina HTTP, která implementuje IHttpHandler pro přenos aktuálního požadavku.

preserveForm
Boolean

true zachovat kolekce QueryString a Form; false vymazat kolekce QueryString a Form.

Výjimky

Aktuální požadavek na stránku je zpětné volání.

Poznámky

Vlastní obslužné rutiny HTTP můžete psát pro zpracování konkrétních předdefinovaných typů požadavků HTTP v libovolném jazyce, který je kompatibilní se specifikací CLS (Common Language Specification). Spustitelný kód definovaný v třídách obslužné rutiny HTTP místo konvenčních stránek ASP (označovaných také jako klasické ASP) nebo ASP.NET stránky reagují na tyto konkrétní požadavky. Obslužné rutiny HTTP umožňují interakci se službami požadavků a odpovědí nízké úrovně webového serveru, na kterém běží Internetová informační služba (IIS), a poskytují funkce, které se podobají rozšířením ISAPI, ale s jednodušším programovacím modelem.

Pokud nastavíte parametr preserveForm na true, cílová stránka bude mít přístup ke stavu zobrazení předchozí stránky pomocí vlastnosti PreviousPage.

Pro účely zabezpečení byste měli zachovat atribut enableViewStateMac nastavený na true. ASP.NET neověřuje, že aktuální uživatel má oprávnění k zobrazení prostředku dodaného metodou Transfer. I když ASP.NET autorizační a ověřovací logika běží před voláním původní obslužné rutiny prostředků, ASP.NET přímo volá obslužnou rutinu označenou metodou Transfer a znovu nespustí ověřování a autorizační logiku pro nový prostředek. Pokud zásady zabezpečení pro vaši aplikaci vyžadují, aby klienti měli pro přístup k prostředku odpovídající autorizaci, měla by aplikace vynutit opětovné ověření nebo poskytnout vlastní mechanismus řízení přístupu.

Opětovné ověřování můžete vynutit použitím metody Redirect místo metody Transfer. Metoda Redirect provádí přesměrování na straně klienta, ve kterém prohlížeč požaduje nový prostředek. Vzhledem k tomu, že toto přesměrování je nový požadavek, který zadává systém, podléhá veškeré logice ověřování a autorizace služby IIS i ASP.NET zásad zabezpečení.

Můžete ověřit, že uživatel má oprávnění k zobrazení prostředku zahrnutím vlastní metody autorizace, která používá metodu IsInRole předtím, než aplikace volá metodu Transfer.

Platí pro