HttpCachePolicy.AddValidationCallback 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 응답에 대한 유효성 검사 콜백을 등록합니다.
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)
매개 변수
- handler
- HttpCacheValidateHandler
HttpCacheValidateHandler 값입니다.
- data
- Object
AddValidationCallback(HttpCacheValidateHandler, Object) 대리자에게 다시 전달되는 임의의 사용자 제공 데이터입니다.
예외
지정된 handler
는 null
입니다.
예제
다음 코드 예제에서는 쿼리 문자열 값에 따라 요청의 유효성을 검사하는 대리자를 추가하는 방법을 보여 줍니다.
<%@ 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에서에서 도입 되었습니다. 자세한 내용은 버전 및 종속성을 참조하세요.