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

Исключения

Указан handlernull.

Примеры

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

<%@ 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. Дополнительные сведения см. в разделе "Версии и зависимости".

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