7

目標: メモリ内にバイト配列としてサムネイルがあります。ユーザーが画像をアップロードしたら、データベースに書き込む前に httphandler に表示したいと考えています。このコードを使用して、データベースから正常に読み取り、表示しました。しかし今、私はセッションからそれを表示したい:

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
4

2 に答える 2

15

クラスをIRequiresSessionStateインターフェース(System.Web.SessionState名前空間)でマークする必要があります。メソッドやプロパティがないため、コードについて他に何も変更する必要はありません。

署名は次のようになります。

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
于 2009-08-06T19:04:08.783 に答える
1

ソラリンは正しかった。IRequiresSessionStateを実装する必要がありました。私が気づかなかったのは、変数を次のように参照する必要があるということでした。

context.Session("oUser")

それ以外の

Session("oUser")
于 2009-08-06T19:36:16.610 に答える