HttpCachePolicy.AddValidationCallback Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zaregistruje zpětné volání ověření pro aktuální odpověď.
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)
Parametry
- handler
- HttpCacheValidateHandler
Hodnota HttpCacheValidateHandler.
- data
- Object
Libovolná uživatelsky zadaná data, která se předávají delegátu AddValidationCallback(HttpCacheValidateHandler, Object) .
Výjimky
handler
Zadané je null
.
Příklady
Následující příklad kódu ukazuje, jak přidat delegáta k ověření požadavku na základě hodnot řetězce dotazu.
<%@ 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>
Poznámky
Metoda AddValidationCallback poskytuje mechanismus pro kontrolu odpovědi programově v mezipaměti před vrácením odpovědi klientovi výstupní mezipamětí.
Před obsluhou odpovědi z mezipaměti webového serveru se všechny registrované obslužné rutiny dotazují, aby se zajistila platnost prostředku. Pokud jakákoli obslužná rutina nastaví příznak označující, že odpověď uložená v mezipaměti není platná, položka se označí jako neplatná a vyloučená z mezipaměti. V tomto případě i když jakákoli obslužná rutina indikuje, že odpověď uložená v mezipaměti by měla být pro tento požadavek ignorována, požadavek se pak zpracuje, jako by došlo k chybě mezipaměti.
AddValidationCallbackje zaveden v .NET Framework verze 3.5. Další informace naleznete v tématu Verze a závislosti.