HttpCachePolicy.AddValidationCallback Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Registrerar ett valideringsåteranrop för det aktuella svaret.
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)
Parametrar
- handler
- HttpCacheValidateHandler
Värdet HttpCacheValidateHandler.
- data
- Object
Godtyckliga användardata som skickas tillbaka till ombudet AddValidationCallback(HttpCacheValidateHandler, Object) .
Undantag
Den angivna handler är null.
Exempel
Följande kodexempel visar hur du lägger till ett ombud för att verifiera en begäran baserat på frågesträngsvärden.
<%@ 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>
Kommentarer
Metoden AddValidationCallback tillhandahåller en mekanism för att kontrollera svaret programmatiskt i cachen innan svaret returneras till klienten av utdatacachen.
Innan svaret hanteras från webbservercachen efterfrågas alla registrerade hanterare för att säkerställa resursens giltighet. Om någon hanterare anger en flagga som anger att det cachelagrade svaret inte är giltigt markeras posten som ogiltig och utvisas från cachen. I det här fallet, liksom när någon hanterare anger att det cachelagrade svaret ska ignoreras för den här begäran, hanteras begäran som om det vore en cachemiss.
AddValidationCallback introduceras i .NET Framework version 3.5. Mer information finns i Versioner och beroenden.