Share via


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 usuario que se pasan al delegado AddValidationCallback(HttpCacheValidateHandler, Object).

Excepciones

El handler especificado 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 caché de salida devuelva la respuesta al cliente.

Antes de atender la respuesta desde la memoria 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 se expulsa 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 fuera un error de caché.

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

Se aplica a