Programing

HttpHandler에서 ASP.NET 세션 상태를 사용하는 방법은 무엇입니까?

lottogame 2020. 12. 27. 10:14
반응형

HttpHandler에서 ASP.NET 세션 상태를 사용하는 방법은 무엇입니까?


클라이언트 페이지에서 실행되는 HttpHandler가 있습니다 (IIS 서버가 아닌 도메인 간). 포함 된 링크를 클릭하면 서버에서 처리기가 실행됩니다. 지금까지 모든 것이 정상적으로 작동합니다.

이제 System.Web.HttpContext.Session 개체를 사용하려고하지만 null입니다. HttpHandler가 호출 될 때까지 세션이 없기 때문에 null이라고 생각합니까? 핸들러를 여러 번 호출하면 호출 당 새 세션이 생성됩니까? 이 경우 MS는 HttpHandler를 호출 할 때 세션 개체를 비활성화 했습니까? 누구든지 이것을 확인할 수 있습니까?

이 경우 통화간에 상태를 유지하려면 어떻게해야합니까? 일종의 SQL 기반 데이터 개체? 파일?

TIA


HttpHandler가 IRequiresSessionState 인터페이스를 구현하도록 하십시오 . 세션 상태 사용을 활성화합니다. IRequiresSessionState는 System.Web.SessionState네임 스페이스 에서 찾을 수 있습니다 .


빈 인터페이스 IReadOnlySessionState 를 구현해야 하므로 컨텍스트가로드됩니다.

추가하려면 편집 :

Michael Morton의 답변에 따르면 IRequiresSessionState구현할 수도 있습니다. 그러면 Session 개체에 대한 쓰기 액세스 권한도 부여됩니다.


using System; 
using System.Web;
using System.Web.SessionState;
public class DownloadHandler : IHttpHandler, IReadOnlySessionState
{
   public bool IsReusable { get { return true; } }

   public void ProcessRequest(HttpContext context)
   {
       context.Response.Write(context.Session["kmx"]);
   }
}

현재 컨텍스트를 사용해보십시오 ...

System.Web.HttpContext.Current.Session

참조 URL : https://stackoverflow.com/questions/1106776/how-to-use-asp-net-session-state-in-an-httphandler

반응형