Aracılığıyla paylaş


HttpCachePolicy.AddValidationCallback Yöntem

Tanım

Geçerli yanıt için bir doğrulama geri çağırması kaydeder.

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)

Parametreler

data
Object

Temsilciye AddValidationCallback(HttpCacheValidateHandler, Object) geri geçirilen, kullanıcı tarafından sağlanan rastgele veriler.

Özel durumlar

Belirtilen handler değeridir null.

Örnekler

Aşağıdaki kod örneği, sorgu dizesi değerlerine göre isteği doğrulamak için nasıl temsilci ekleneceğini gösterir.

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

Açıklamalar

yöntemi, AddValidationCallback yanıt çıktı önbelleği tarafından istemciye döndürülmeden önce yanıtı önbellekte program aracılığıyla denetlemek için bir mekanizma sağlar.

Yanıt Web sunucusu önbelleğinden sunulmadan önce, kaynak geçerliliğini sağlamak için tüm kayıtlı işleyiciler sorgulanır. Herhangi bir işleyici önbelleğe alınan yanıtın geçerli olmadığını belirten bir bayrak ayarlarsa, girdi geçerli değil olarak işaretlenir ve önbellekten atılır. Bu durumda, herhangi bir işleyici bu istek için önbelleğe alınan yanıtın yoksayılması gerektiğini belirttiğinde olduğu gibi, istek daha sonra önbellek kaçırılmış gibi işlenir.

AddValidationCallback.NET Framework sürüm 3.5'te kullanıma sunulmuştur. Daha fazla bilgi için bkz . Sürümler ve Bağımlılıklar.

Şunlara uygulanır