HttpCachePolicy.AddValidationCallback Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Érvényesítési visszahívást regisztrál az aktuális válaszhoz.
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)
Paraméterek
- handler
- HttpCacheValidateHandler
A HttpCacheValidateHandler érték.
- data
- Object
A felhasználó által megadott tetszőleges adatok, amelyeket a meghatalmazottnak ad vissza AddValidationCallback(HttpCacheValidateHandler, Object) .
Kivételek
A megadott handler érték: null.
Példák
Az alábbi példakód bemutatja, hogyan adhat hozzá delegáltat egy kérés lekérdezési sztringértékek alapján történő érvényesítéséhez.
<%@ 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>
Megjegyzések
A AddValidationCallback metódus egy mechanizmust biztosít a válasz programozott ellenőrzésére a gyorsítótárban, mielőtt a kimeneti gyorsítótár visszaadja a választ az ügyfélnek.
Mielőtt a választ a webkiszolgáló gyorsítótárából kézbesítené, a rendszer lekérdezi az összes regisztrált kezelőt az erőforrás érvényességének biztosítása érdekében. Ha egy kezelő beállít egy jelzőt, amely jelzi, hogy a gyorsítótárazott válasz érvénytelen, a bejegyzés érvénytelenként van megjelölve, és ki lesz utasítva a gyorsítótárból. Ebben az esetben, valamint ha bármely kezelő azt jelzi, hogy a gyorsítótárazott választ figyelmen kívül kell hagyni ehhez a kéréshez, akkor a rendszer úgy kezeli a kérést, mintha gyorsítótárhiba lenne.
AddValidationCallback a .NET-keretrendszer 3.5-ös verziójában kerül bevezetésre. További információ: Verziók és függőségek.