HttpCachePolicy.AddValidationCallback メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim instance As HttpCachePolicy Dim handler As HttpCacheValidateHandler Dim data As Object instance.AddValidationCallback(handler, data)
- handler
HttpCacheValidateHandler 値。


AddValidationCallback メソッドは、応答が出力キャッシュによってクライアントに返される前に、その応答をキャッシュ内でプログラムによってチェックする機構を実現します。
Web サーバー キャッシュから応答が返される前に、すべての登録済みハンドラが照会され、リソースの有効性が確認されます。いずれかのハンドラによって、キャッシュされた応答が有効でないことを示すフラグが設定された場合、そのエントリには有効でないことを示すマークが付けられ、キャッシュから消去されます。このような場合や、キャッシュされた応答をこの要求の対象から除外するよういずれかのハンドラで示されている場合は、キャッシュ ミスの場合と同様に要求が処理されます。

デリゲートを追加して、クエリ文字列の値を基に要求を検証する方法を次のコード例に示します。
<%@ Page Language="VB" %> <%@ OutputCache VaryByParam="none" Duration=600 %> <Script runat="server"> shared validationstate As String Public Sub Page_Load(sender As Object, e As EventArgs) Response.Cache.AddValidationCallback(new HttpCacheValidateHandler(AddressOf Me.Validate), nothing) stamp.InnerHtml = DateTime.Now.ToString("r") End Sub Public Shared Sub Validate(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>
<%@ OutputCache VaryByParam="none" Duration=600 %> <Script Language="C#" runat="server"> static string validationstate; public void Page_Load() { Response.Cache.AddValidationCallback(new HttpCacheValidateHandler(Validate), null); stamp.InnerHtml = DateTime.Now.ToString("r"); } public static void Validate(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>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- HttpCachePolicy.AddValidationCallback メソッドのページへのリンク