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
'Programing' 카테고리의 다른 글
클래스의 std :: thread 호출 메소드 (0) | 2020.12.27 |
---|---|
파일 변경 감지, 파일 다시로드 제안 (0) | 2020.12.27 |
오른쪽에 흰색 막대가 표시된 webview (0) | 2020.12.27 |
파이썬의 for 루프 (0) | 2020.12.27 |
R 패키지 및 종속성의 오프라인 설치 (0) | 2020.12.26 |