HttpCachePolicy.AddValidationCallback Metod

Definition

Registrerar ett valideringsåteranrop för det aktuella svaret.

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)

Parametrar

data
Object

Godtyckliga användardata som skickas tillbaka till ombudet AddValidationCallback(HttpCacheValidateHandler, Object) .

Undantag

Den angivna handler är null.

Exempel

Följande kodexempel visar hur du lägger till ett ombud för att verifiera en begäran baserat på frågesträngsvärden.

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

Kommentarer

Metoden AddValidationCallback tillhandahåller en mekanism för att kontrollera svaret programmatiskt i cachen innan svaret returneras till klienten av utdatacachen.

Innan svaret hanteras från webbservercachen efterfrågas alla registrerade hanterare för att säkerställa resursens giltighet. Om någon hanterare anger en flagga som anger att det cachelagrade svaret inte är giltigt markeras posten som ogiltig och utvisas från cachen. I det här fallet, liksom när någon hanterare anger att det cachelagrade svaret ska ignoreras för den här begäran, hanteras begäran som om det vore en cachemiss.

AddValidationCallback introduceras i .NET Framework version 3.5. Mer information finns i Versioner och beroenden.

Gäller för