HttpCachePolicy.AddValidationCallback Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- handler
- HttpCacheValidateHandler
Valor de HttpCacheValidateHandler.
- 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.