HttpCachePolicy.AddValidationCallback Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
- handler
- HttpCacheValidateHandler
Valore HttpCacheValidateHandler.
- 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.