1: <%@ WebHandler Language="VB" Class="Image" %>
2: Imports System
3: Imports System.Web
4: Imports System.Web.HttpRequest
5:
6: Public Class Image : Implements IHttpHandler
7:
8: Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
9: Dim empID As Integer = Decrypt(Request.QueryString, "EmployeeID")
10: If (empID = Nothing) Then Return
11:
12: Dim Photo As Employee.EmpPhoto
13: Photo = Employee.GetPhotoByEmployeeID(empID)
14:
15: With EmployeePhoto
16: context.Response.ContentType = .ContentType
17: 'Add below lines to set cache header per Christopher's suggestions
18: context.Response.AddFileDependency(imageFileName)
19: context.Response.Cache.SetETagFromFileDependencies()
20: context.Response.Cache.SetLastModifiedFromFileDependencies()
21: context.Response.Cache.SetCacheability(HttpCacheability.[Public])
22: context.Response.Cache.SetExpires(DateTime.Now.AddTicks(600))
23: context.Response.Cache.SetMaxAge(999)
24: context.Response.Cache.SetSlidingExpiration(True)
25: context.Response.Cache.SetValidUntilExpires(True)
26: context.Response.Cache.VaryByParams("*") = True
27: 'End added lines
28: context.Response.BinaryWrite(.Data)
29: End With
30: End Sub
31:
32: Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
33: Get
34: Return False
35: End Get
36: End Property
37:
38: End Class