Udostępnij za pośrednictwem


HttpCachePolicy.AddValidationCallback Metoda

Definicja

Rejestruje wywołanie zwrotne weryfikacji dla bieżącej odpowiedzi.

public:
 void AddValidationCallback(System::Web::HttpCacheValidateHandler ^ handler, System::Object ^ data);
public void AddValidationCallback (System.Web.HttpCacheValidateHandler handler, object data);
member this.AddValidationCallback : System.Web.HttpCacheValidateHandler * obj -> unit
Public Sub AddValidationCallback (handler As HttpCacheValidateHandler, data As Object)

Parametry

handler
HttpCacheValidateHandler

Wartość wyliczenia HttpCacheValidateHandler.

data
Object

Dowolne dane dostarczone przez użytkownika, które są przekazywane z powrotem do delegata AddValidationCallback(HttpCacheValidateHandler, Object) .

Wyjątki

Określona handler wartość to null.

Przykłady

W poniższym przykładzie kodu pokazano, jak dodać delegata, aby zweryfikować żądanie na podstawie wartości ciągu zapytania.

<%@ Page Language="C#" %>
<%@ OutputCache VaryByParam="none" Duration="600" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script language="c#" runat="server">

   static string validationstate;
 
   public void Page_Load()
   {
      Response.Cache.AddValidationCallback(new HttpCacheValidateHandler(ValidateCache), null);
      stamp.InnerHtml = DateTime.Now.ToString("r");
   }

   public static void ValidateCache(HttpContext context, Object data, ref HttpValidationStatus status) 
   {
      if (context.Request.QueryString["Valid"] == "false") 
      {
         status = HttpValidationStatus.Invalid;
      } 
      else if (context.Request.QueryString["Valid"] == "ignore") 
      {
         status = HttpValidationStatus.IgnoreThisRequest;
      } 
      else 
      {
         status = HttpValidationStatus.Valid;
      }
   }

</script>
<%@ Page Language="VB" %>
<%@ OutputCache VaryByParam="none" Duration="600" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
   shared validationstate As String

   Public Sub Page_Load(sender As Object, e As EventArgs)
      Response.Cache.AddValidationCallback(new HttpCacheValidateHandler(AddressOf Me.ValidateCache), nothing)
      stamp.InnerHtml = DateTime.Now.ToString("r")
   End Sub

   Public Shared Sub ValidateCache(context As HttpContext, data As Object, ByRef status as HttpValidationStatus)
      If (context.Request.QueryString("Valid") = "false") Then
         status = HttpValidationStatus.Invalid
      Elseif (context.Request.QueryString("Valid") = "ignore") Then
         status = HttpValidationStatus.IgnoreThisRequest
      Else
         status = HttpValidationStatus.Valid
      End If
   End Sub

</script>

Uwagi

Metoda AddValidationCallback zapewnia mechanizm sprawdzania odpowiedzi programowo w pamięci podręcznej przed zwróceniem odpowiedzi do klienta przez pamięć podręczną danych wyjściowych.

Przed udostępnieniem odpowiedzi z pamięci podręcznej serwera sieci Web wszystkie zarejestrowane programy obsługi są odpytywane w celu zapewnienia ważności zasobu. Jeśli jakikolwiek program obsługi ustawia flagę wskazującą, że buforowana odpowiedź jest nieprawidłowa, wpis jest oznaczony jako nieprawidłowy i wydalony z pamięci podręcznej. W takim przypadku, jak również wtedy, gdy każda procedura obsługi wskazuje, że buforowana odpowiedź powinna być ignorowana dla tego żądania, żądanie jest następnie obsługiwane tak, jakby nie było to błąd pamięci podręcznej.

AddValidationCallbackjest wprowadzana w wersji .NET Framework 3.5. Aby uzyskać więcej informacji, zobacz Wersje i zależności.

Dotyczy