HttpServerUtility.Transfer Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 true
wartość , 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 true
wartość . 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 true
wartość , 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 true
wartość . 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 .