HttpCachePolicy.AddValidationCallback Méthode

Définition

Inscrit un rappel de validation pour la réponse actuelle.

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)

Paramètres

data
Object

Données arbitraires fournies par l'utilisateur repassées au délégué AddValidationCallback(HttpCacheValidateHandler, Object).

Exceptions

Le handler spécifié a la valeur null.

Exemples

L’exemple de code suivant montre comment ajouter un délégué pour valider une requête en fonction des valeurs de chaîne de requête.

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

Remarques

La AddValidationCallback méthode fournit un mécanisme permettant de vérifier la réponse par programmation dans le cache avant que la réponse soit retournée au client par le cache de sortie.

Avant que la réponse soit servie à partir du cache du serveur web, tous les gestionnaires inscrits sont interrogés pour garantir la validité des ressources. Si un gestionnaire définit un indicateur indiquant que la réponse mise en cache n’est pas valide, l’entrée est marquée comme non valide et expulsée du cache. Dans ce cas, ainsi que lorsque tout gestionnaire indique que la réponse mise en cache doit être ignorée pour cette demande, la requête est ensuite gérée comme si elle était une erreur de cache.

AddValidationCallbackest introduit dans le .NET Framework version 3.5. Pour plus d’informations, consultez Versions et dépendances.

S’applique à