HttpCachePolicy.AddValidationCallback Método

Definición

Registra una devolución de llamada de validación para la respuesta actual.

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)

Parámetros

data
Object

Datos arbitrarios proporcionados por el AddValidationCallback(HttpCacheValidateHandler, Object) usuario que se devuelven al delegado.

Excepciones

El especificado handler es null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo agregar un delegado para validar una solicitud basada en valores de cadena de consulta.

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

Comentarios

El AddValidationCallback método proporciona un mecanismo para comprobar la respuesta mediante programación en la memoria caché antes de que la respuesta se devuelva al cliente mediante la memoria caché de salida.

Antes de que se sirva la respuesta desde la caché del servidor web, se consultan todos los controladores registrados para garantizar la validez de los recursos. Si algún controlador establece una marca que indica que la respuesta almacenada en caché no es válida, la entrada se marca como no válida y expulsada de la memoria caché. En este caso, así como cuando cualquier controlador indica que la respuesta almacenada en caché debe omitirse para esta solicitud, la solicitud se controla como si se tratara de una falta de caché.

AddValidationCallback se introduce en la versión 3.5 de .NET Framework. Para obtener más información, vea Versiones y dependencias.

Se aplica a