HttpCachePolicy.AddValidationCallback Metode

Definisi

Mendaftarkan panggilan balik validasi untuk respons saat ini.

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

Data yang disediakan pengguna arbitrer yang diteruskan kembali ke AddValidationCallback(HttpCacheValidateHandler, Object) delegasi.

Pengecualian

Yang ditentukan handler adalah null.

Contoh

Contoh kode berikut menunjukkan cara menambahkan delegasi untuk memvalidasi permintaan berdasarkan nilai string kueri.

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

Keterangan

Metode ini AddValidationCallback menyediakan mekanisme untuk memeriksa respons secara terprogram di cache sebelum respons dikembalikan ke klien oleh cache output.

Sebelum respons dilayani dari cache server Web, semua handler terdaftar dikueri untuk memastikan validitas sumber daya. Jika ada handler yang menetapkan bendera yang menunjukkan bahwa respons cache tidak valid, entri ditandai sebagai tidak valid dan dikeluarkan dari cache. Dalam hal ini, serta ketika ada handler yang menunjukkan bahwa respons cache harus diabaikan untuk permintaan ini, permintaan kemudian ditangani seolah-olah itu adalah cache miss.

AddValidationCallback diperkenalkan dalam .NET Framework versi 3.5. Untuk informasi selengkapnya, lihat Versi dan Dependensi.

Berlaku untuk