HttpCachePolicy.AddValidationCallback Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- handler
- HttpCacheValidateHandler
HttpCacheValidateHandler değeri.
- 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.