Udostępnij za pośrednictwem


HttpServerUtility.Transfer Metoda

Definicja

Kończy wykonywanie bieżącej strony i rozpoczyna wykonywanie nowej strony dla bieżącego żądania.

Przeciążenia

Transfer(String)

W przypadku bieżącego żądania kończy wykonywanie bieżącej strony i rozpoczyna wykonywanie nowej strony przy użyciu określonej ścieżki adresu URL strony.

Transfer(String, Boolean)

Kończy wykonywanie bieżącej strony i rozpoczyna wykonywanie nowej strony przy użyciu określonej ścieżki adresu URL strony. Określa, czy należy wyczyścić QueryString kolekcje i Form .

Transfer(IHttpHandler, Boolean)

Kończy wykonywanie bieżącej strony i rozpoczyna wykonywanie nowego żądania przy użyciu niestandardowego programu obsługi HTTP, który implementuje IHttpHandler interfejs i określa, czy wyczyścić QueryString kolekcje i Form .

Transfer(String)

W przypadku bieżącego żądania kończy wykonywanie bieżącej strony i rozpoczyna wykonywanie nowej strony przy użyciu określonej ścieżki adresu URL strony.

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

Ścieżka ADRESU URL nowej strony na serwerze do wykonania.

Uwagi

Przeniesiona strona powinna być inną stroną aspx. Na przykład transfer do strony .asp lub .asmx jest nieprawidłowy. Metoda Transfer zachowuje kolekcje QueryString i Form .

Transfer wywołuje Endmetodę ThreadAbortException , która zgłasza wyjątek po zakończeniu.

ASP.NET nie sprawdza, czy bieżący użytkownik ma uprawnienia do wyświetlania zasobu dostarczonego przez metodę Transfer . Mimo że logika autoryzacji i uwierzytelniania ASP.NET jest uruchamiana przed wywołaną oryginalną procedurą obsługi zasobów, ASP.NET bezpośrednio wywołuje procedurę obsługi wskazaną Transfer przez metodę i nie uruchamia ponownie logiki uwierzytelniania i autoryzacji dla nowego zasobu. Jeśli zasady zabezpieczeń aplikacji wymagają od klientów odpowiedniej autoryzacji w celu uzyskania dostępu do zasobu, aplikacja powinna wymusić ponowne uwierzytelnianie lub zapewnić niestandardowy mechanizm kontroli dostępu.

Ponowne uwierzytelnianie można wymusić przy użyciu Redirect metody zamiast Transfer metody . Metoda Redirect wykonuje przekierowanie po stronie klienta, w którym przeglądarka żąda nowego zasobu. Ponieważ to przekierowanie jest nowym żądaniem wprowadzającym system, podlega całej logice uwierzytelniania i autoryzacji zarówno usług Internet Information Services (IIS), jak i zasad zabezpieczeń ASP.NET.

Możesz sprawdzić, czy użytkownik ma uprawnienia do wyświetlania zasobu, włączając niestandardową metodę autoryzacji, która używa IsInRole metody przed wywołaniem metody przez aplikację Transfer .

Dotyczy

Transfer(String, Boolean)

Kończy wykonywanie bieżącej strony i rozpoczyna wykonywanie nowej strony przy użyciu określonej ścieżki adresu URL strony. Określa, czy należy wyczyścić QueryString kolekcje i 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

Ścieżka ADRESU URL nowej strony na serwerze do wykonania.

preserveForm
Boolean

true aby zachować QueryString kolekcje i Form , false aby wyczyścić QueryString kolekcje i Form .

Wyjątki

Bieżące żądanie strony jest wywołaniem zwrotnym.

Przykłady

Poniższy przykład wykonuje nową stronę w tym samym katalogu co bieżąca strona.

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

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

Uwagi

Przeniesiona strona powinna być inną stroną aspx. Na przykład transfer do strony .asp lub .asmx jest nieprawidłowy.

Transfer wywołuje Endmetodę ThreadAbortException , która zgłasza wyjątek po zakończeniu.

Jeśli ustawisz preserveForm parametr na truewartość , strona docelowa będzie mogła uzyskać dostęp do stanu widoku poprzedniej strony przy użyciu PreviousPage właściwości .

W celach bezpieczeństwa należy zachować enableViewStateMac atrybut ustawiony na truewartość . ASP.NET nie sprawdza, czy bieżący użytkownik ma uprawnienia do wyświetlania zasobu dostarczonego przez metodę Transfer . Mimo że logika autoryzacji i uwierzytelniania ASP.NET jest uruchamiana przed wywołaną oryginalną procedurą obsługi zasobów, ASP.NET bezpośrednio wywołuje procedurę obsługi wskazaną Transfer przez metodę i nie uruchamia ponownie logiki uwierzytelniania i autoryzacji dla nowego zasobu. Jeśli zasady zabezpieczeń aplikacji wymagają od klientów odpowiedniej autoryzacji w celu uzyskania dostępu do zasobu, aplikacja powinna wymusić ponowne uwierzytelnianie lub zapewnić niestandardowy mechanizm kontroli dostępu.

Ponowne uwierzytelnianie można wymusić przy użyciu Redirect metody zamiast Transfer metody . Metoda Redirect wykonuje przekierowanie po stronie klienta, w którym przeglądarka żąda nowego zasobu. Ponieważ to przekierowanie jest nowym żądaniem wprowadzającym system, podlega całej logice uwierzytelniania i autoryzacji zarówno usług Internet Information Services (IIS), jak i zasad zabezpieczeń ASP.NET.

Możesz sprawdzić, czy użytkownik ma uprawnienia do wyświetlania zasobu, włączając niestandardową metodę autoryzacji, która używa IsInRole metody przed wywołaniem metody przez aplikację Transfer .

Dotyczy

Transfer(IHttpHandler, Boolean)

Kończy wykonywanie bieżącej strony i rozpoczyna wykonywanie nowego żądania przy użyciu niestandardowego programu obsługi HTTP, który implementuje IHttpHandler interfejs i określa, czy wyczyścić QueryString kolekcje i Form .

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

Procedura obsługi HTTP, która implementuje element w IHttpHandler celu przeniesienia bieżącego żądania do.

preserveForm
Boolean

true aby zachować QueryString kolekcje i Form , false aby wyczyścić QueryString kolekcje i Form .

Wyjątki

Bieżące żądanie strony jest wywołaniem zwrotnym.

Uwagi

Niestandardowe programy obsługi HTTP można pisać w celu przetwarzania określonych, wstępnie zdefiniowanych typów żądań HTTP w dowolnym języku, który jest zgodny ze specyfikacją języka wspólnego (CLS). Kod wykonywalny zdefiniowany w klasach obsługi HTTP zamiast konwencjonalnych stron ASP (nazywanych również klasycznymi platformami ASP) lub ASP.NET stron odpowiada na te konkretne żądania. Programy obsługi HTTP umożliwiają interakcję z usługami żądań i odpowiedzi niskiego poziomu serwera sieci Web z uruchomionymi usługami Internet Information Services (IIS) i zapewniają funkcje podobne do rozszerzeń ISAPI, ale z prostszym modelem programowania.

Jeśli ustawisz preserveForm parametr na truewartość , strona docelowa będzie mogła uzyskać dostęp do stanu widoku poprzedniej strony przy użyciu PreviousPage właściwości .

W celach bezpieczeństwa należy zachować enableViewStateMac atrybut ustawiony na truewartość . ASP.NET nie sprawdza, czy bieżący użytkownik ma uprawnienia do wyświetlania zasobu dostarczonego przez metodę Transfer . Mimo że logika autoryzacji i uwierzytelniania ASP.NET jest uruchamiana przed wywołaną oryginalną procedurą obsługi zasobów, ASP.NET bezpośrednio wywołuje program obsługi wskazany przez Transfer metodę i nie uruchamia ponownie logiki uwierzytelniania i autoryzacji dla nowego zasobu. Jeśli zasady zabezpieczeń aplikacji wymagają od klientów odpowiedniej autoryzacji w celu uzyskania dostępu do zasobu, aplikacja powinna wymusić ponowne uwierzytelnianie lub zapewnić niestandardowy mechanizm kontroli dostępu.

Ponowne uwierzytelnianie można wymusić przy użyciu Redirect metody zamiast Transfer metody . Metoda Redirect wykonuje przekierowanie po stronie klienta, w którym przeglądarka żąda nowego zasobu. Ponieważ to przekierowanie jest nowym żądaniem wprowadzającym system, podlega całej logice uwierzytelniania i autoryzacji zarówno usług IIS, jak i zasad zabezpieczeń ASP.NET.

Możesz sprawdzić, czy użytkownik ma uprawnienia do wyświetlania zasobu, włączając niestandardową metodę autoryzacji, która używa IsInRole metody przed wywołaniem metody przez aplikację Transfer .

Dotyczy