HttpCachePolicy.AddValidationCallback Метод

Определение

Регистрирует обратный вызов проверки для текущего ответа.

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)

Параметры

data
Object

Произвольные, предоставленные пользователем данные, которые передаются обратно делегату AddValidationCallback(HttpCacheValidateHandler, Object).

Исключения

Заданный объект handler имеет значение null.

Примеры

В следующем примере кода показано, как добавить делегат для проверки запроса на основе значений строки запроса.

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

Комментарии

Этот AddValidationCallback метод предоставляет механизм для программной проверки ответа в кэше, прежде чем ответ будет возвращен клиенту выходным кэшем.

Перед отправкой ответа из кэша веб-сервера все зарегистрированные обработчики запрашиваются для обеспечения допустимости ресурсов. Если какой-либо обработчик задает флаг, указывающий, что кэшированный ответ недопустим, запись помечается как недопустимая и исключенная из кэша. В этом случае, а также когда любой обработчик указывает, что кэшированный ответ следует игнорировать для этого запроса, запрос обрабатывается так же, как если бы он пропустил кэш.

AddValidationCallbackпредставлен в платформа .NET Framework версии 3.5. Дополнительные сведения см. в статье Версии и зависимости платформы .NET Framework.

Применяется к