HttpCachePolicy.AddValidationCallback Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- handler
- HttpCacheValidateHandler
Nilai HttpCacheValidateHandler.
- 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.