次の方法で共有


HttpCachePolicy.AddValidationCallback メソッド

現在の応答に対する検証コールバックを登録します。

Public Sub AddValidationCallback( _
   ByVal handler As HttpCacheValidateHandler, _   ByVal data As Object _)
[C#]
public void AddValidationCallback(HttpCacheValidateHandlerhandler,objectdata);
[C++]
public: void AddValidationCallback(HttpCacheValidateHandler* handler,Object* data);
[JScript]
public function AddValidationCallback(
   handler : HttpCacheValidateHandler,data : Object);

パラメータ

  • handler
    HttpCacheValidateHandler 値。
  • data
    ユーザーが指定した、 AddValidationCallback デリゲートに戻される任意のデータ。

例外

例外の種類 条件
ArgumentNullException handler が null 参照 (Visual Basic では Nothing) です。

解説

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

[C#] 
<%@ 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 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>

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 2000, Windows XP Professional, Windows Server 2003 ファミリ

参照

HttpCachePolicy クラス | HttpCachePolicy メンバ | System.Web 名前空間