Reputation:
Goal: I have a thumbnail as a byte array in memory. Once a user uploads their image, I want to display it in an httphandler before writing it to the database. I have used this code to successfully read it and display from a database. But now I want to display it from the session:
Public Sub ProcessRequest(ByVal context As HttpContext) _
Implements IHttpHandler.ProcessRequest
Dim oPhotoMgt As New PhotoMgt
Dim intPhotoID As Int32 = context.Request.QueryString("id")
Dim oPhoto As New Photo
oPhoto = oPhotoMgt.GetPhotoByID(intPhotoID)
context.Response.ContentType = "image/jpeg"
context.Response.BinaryWrite(oPhoto.Bytes.ToArray())
End Sub
Upvotes: 7
Views: 11245
Reputation:
Thorarin was correct. I had to implement IRequiresSessionState. What I didn't realize was that I then had to refer to the variable as
context.Session("oUser")
instead of
Session("oUser")
Upvotes: 1
Reputation: 48476
You should mark your class with the IRequiresSessionState interface (System.Web.SessionState
namespace). It has no methods or properties, so you shouldn't have to change anything else about your code.
The signature would be:
Imports System.Web
Imports System.Web.SessionState
Public Class MyHandler
Implements IHttpHandler, IRequiresSessionState
Public Sub ProcessRequest(ByVal context As HttpContext) _
Implements IHttpHandler.ProcessRequest
context.Session("foo") = "bar"
End Sub
End Class
Upvotes: 15