Freigeben über


HttpCachePolicy.AddValidationCallback Methode

Definition

Registriert einen Validierungsrückruf für die aktuelle Antwort.

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)

Parameter

data
Object

Beliebige vom Benutzer angegebene Daten, die zurück an den AddValidationCallback(HttpCacheValidateHandler, Object)-Delegaten übergeben werden.

Ausnahmen

Der angegebene handler ist gleich null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie eine Stellvertretung hinzufügen, um eine Anforderung basierend auf Abfragezeichenfolgenwerten zu überprüfen.

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

Hinweise

Die AddValidationCallback Methode stellt einen Mechanismus bereit, um die Antwort programmgesteuert im Cache zu überprüfen, bevor die Antwort vom Ausgabecache an den Client zurückgegeben wird.

Bevor die Antwort vom Webservercache bereitgestellt wird, werden alle registrierten Handler abgefragt, um die Gültigkeit der Ressource sicherzustellen. Wenn ein Handler ein Flag festlegt, das angibt, dass die zwischengespeicherte Antwort ungültig ist, wird der Eintrag als ungültig gekennzeichnet und aus dem Cache entfernt. In diesem Fall sowie wenn ein beliebiger Handler angibt, dass die zwischengespeicherte Antwort für diese Anforderung ignoriert werden soll, wird die Anforderung dann behandelt, als ob es sich um einen Cachefehler handelt.

AddValidationCallbackwird in der .NET Framework Version 3.5 eingeführt. Weitere Informationen finden Sie unter Versionen und Abhängigkeiten.

Gilt für