Condividi tramite


HttpCachePolicy.AddValidationCallback Metodo

Definizione

Registra un callback di convalida per la risposta corrente.

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)

Parametri

data
Object

Dati arbitrari specificati dall'utente restituiti al delegato AddValidationCallback(HttpCacheValidateHandler, Object).

Eccezioni

Il valore specificato per il parametro handler è null.

Esempio

Nell'esempio di codice seguente viene illustrato come aggiungere un delegato per convalidare una richiesta in base ai valori della stringa di query.

<%@ 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>

Commenti

Il AddValidationCallback metodo fornisce un meccanismo per controllare la risposta a livello di codice nella cache prima che la risposta venga restituita al client dalla cache di output.

Prima che la risposta venga servita dalla cache del server Web, viene eseguita una query su tutti i gestori registrati per garantire la validità delle risorse. Se un gestore imposta un flag che indica che la risposta memorizzata nella cache non è valida, la voce viene contrassegnata come non valida ed espulsa dalla cache. In questo caso, nonché quando un gestore indica che la risposta memorizzata nella cache deve essere ignorata per questa richiesta, la richiesta viene quindi gestita come se fosse un mancato riscontro nella cache.

AddValidationCallbackè stato introdotto nella .NET Framework versione 3.5. Per altre informazioni, vedere Versioni e dipendenze.

Si applica a