다음을 통해 공유


HttpCachePolicy.AddValidationCallback 메서드

정의

현재 응답에 대한 유효성 검사 콜백을 등록합니다.

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)

매개 변수

data
Object

AddValidationCallback(HttpCacheValidateHandler, Object) 대리자에게 다시 전달되는 임의의 사용자 제공 데이터입니다.

예외

지정된 handlernull입니다.

예제

다음 코드 예제에서는 쿼리 문자열 값에 따라 요청의 유효성을 검사하는 대리자를 추가하는 방법을 보여 줍니다.

<%@ 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>

설명

이 메서드는 AddValidationCallback 응답이 출력 캐시에 의해 클라이언트로 반환되기 전에 캐시에서 프로그래밍 방식으로 응답을 확인하는 메커니즘을 제공합니다.

웹 서버 캐시에서 응답을 제공하려면 리소스 유효성을 확인하기 위해 등록된 모든 처리기가 쿼리됩니다. 처리기가 캐시된 응답이 유효하지 않음을 나타내는 플래그를 설정하는 경우 항목이 유효하지 않은 것으로 표시되고 캐시에서 제거됩니다. 이 경우 처리기가 이 요청에 대해 캐시된 응답을 무시해야 한다고 나타내는 경우와 마찬가지로 요청은 캐시 누락인 것처럼 처리됩니다.

AddValidationCallback .NET Framework 버전 3.5에서에서 도입 되었습니다. 자세한 내용은 버전 및 종속성을 참조하세요.

적용 대상