HttpCachePolicy.AddValidationCallback Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Rejestruje wywołanie zwrotne weryfikacji dla bieżącej odpowiedzi.
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
Wartość wyliczenia HttpCacheValidateHandler.
- data
- Object
Dowolne dane dostarczone przez użytkownika, które są przekazywane z powrotem do delegata AddValidationCallback(HttpCacheValidateHandler, Object) .
Wyjątki
Określona handler
wartość to null
.
Przykłady
W poniższym przykładzie kodu pokazano, jak dodać delegata, aby zweryfikować żądanie na podstawie wartości ciągu zapytania.
<%@ 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>
Uwagi
Metoda AddValidationCallback zapewnia mechanizm sprawdzania odpowiedzi programowo w pamięci podręcznej przed zwróceniem odpowiedzi do klienta przez pamięć podręczną danych wyjściowych.
Przed udostępnieniem odpowiedzi z pamięci podręcznej serwera sieci Web wszystkie zarejestrowane programy obsługi są odpytywane w celu zapewnienia ważności zasobu. Jeśli jakikolwiek program obsługi ustawia flagę wskazującą, że buforowana odpowiedź jest nieprawidłowa, wpis jest oznaczony jako nieprawidłowy i wydalony z pamięci podręcznej. W takim przypadku, jak również wtedy, gdy każda procedura obsługi wskazuje, że buforowana odpowiedź powinna być ignorowana dla tego żądania, żądanie jest następnie obsługiwane tak, jakby nie było to błąd pamięci podręcznej.
AddValidationCallbackjest wprowadzana w wersji .NET Framework 3.5. Aby uzyskać więcej informacji, zobacz Wersje i zależności.