Session과 HttpContext.Current.Session 개체의 차이점은 무엇입니까?세션과 HttpContext.Current.Session의 차이점
답변
차이는 없습니다.
Page.Session에 대한 getter는 컨텍스트 세션을 반환합니다.
아무것도 아니요. Session
은 HttpContext.Current.Session
을 가리키고 있습니다.
조금 늦었지만 여기에 방금 발견 한 내용이 있습니다.
@Phillipe Leybaert 및 @CSharpAtl 모두 잘못되었습니다. HttpApplication
속성의 HttpContext.Current.Session
속성보다 다른 속성의 동작을 나타내는 Session
속성 하나를 사용할 수있는 경우 동일한 HttpSessionState
인스턴스 에 대한 참조를 반환합니다. 현재 요청에 대해 HttpSessionState
의 인스턴스가 없을 때 수행하는 작업과 다릅니다.
모두 HttpHandler
은 세션 상태를 제공하지 않습니다. 이렇게하려면 HttpHandler
은 마커 인터페이스 IRequiresSessionState
또는 IReadOnlySessionState
중 하나 또는 둘 모두를 구현해야합니다.
HttpContext.Current.Session
은 사용 가능한 세션이없는 경우 null
을 반환합니다.
Session
속성의 HttpApplication
의 구현은 오히려 null
레퍼런스를 반환하기보다는 메시지 Session state is not available in this context.
함께 HttpException
을 던진다.
세션을 구현하지 않는 HttpHandler
의 일부 예제는 이미지 및 CSS 파일과 같은 일반적으로 정적 리소스의 기본 처리기입니다. 이 경우 (global.asax
이벤트 핸들러에서와 마찬가지로) HttpApplication
의 Session
속성에 대한 참조는 HttpException
이됩니다.
예기치 않게 HttpException
은 WTF를 제공합니까?! 기대하지 않으면 잠시.
HttpApplication
클래스의 Session
속성 (리플렉터에서) 이렇게 구현됩니다
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public HttpSessionState Session
{
get
{
HttpSessionState session = null;
if (this._session != null)
{
session = this._session;
}
else if (this._context != null)
{
session = this._context.Session;
}
if (session == null)
{
throw new HttpException(SR.GetString("Session_not_available"));
}
return session;
}
}
더 나은 답변을 작성해 주셔서 감사합니다. – nicodemus13
문제 없습니다. 나는 방금 성가신 WTF를 가졌습니까? 시간을 내서 정리할 시간이었습니다. 나는 누군가가 줄을 서서 무엇이 계속되고 있는지를 알기 위해 시간을 보낼 필요가 없도록 문서화 할 것이라고 생각했다. –
- 1. PHP 세션과 쿠키의 목적과 그 차이점
- 2. ControllerContext.HttpContext.Session과 HttpContext.Current.Session의 차이점은 무엇입니까
- 3. HttpContext.Current.Session의 IDisposable 개체가 Application_End에 있습니까?
- 4. 세션과 쿠키는 어떻게 작동합니까?
- 5. codeigniter 세션과 쿠키
- 6. 세션과 NHibernate 스레드 안전
- 7. RoR은 PHP 세션과 동일합니까?
- 8. 세션과 비슷한 객체가 있습니다. 양식은
- 9. PHP에서 세션과 쿠키의 차이점은 무엇입니까?
- 10. Ruby on Rails : 세션과 ActiveResource?
- 11. NHibernate/다중 세션과 중첩 된 객체
- 12. 데이터베이스 상태를 세션과 동기화 할 수 없습니다.
- 13. 동일한 PHP 파일에 세션과 쿠키가 있습니까?
- 14. PHP 하위 세션과 공유 된 세션
- 15. JPA 2.0의 세션과 트랜잭션의 차이점은 무엇입니까?
- 16. 파이썬 : CGI 스크립트에서 세션과 상호 작용
- 17. netTcpBinding에서 세션과 스트리밍을 모두 활성화하는 방법이 있습니까?
- 18. Java에서 세션이없는 세션과 세션이없는 세션을 확인하는 방법
- 19. Java RMI와 Hibernate : 세션과 트랜잭션 관리
- 20. 차이점 downcase와 downcase의 차이점! Ruby에서
- 21. IE5와 IE8의 차이점 모드 차이점
- 22. 컴파일러 차이점
- 23. 차이점 포크
- 24. 정렬 차이점
- 25. 파일이없는 차이점
- 26. 네트워크의 차이점
- 27. RegEx의 차이점
- 28. 웹 가든이 InProc 세션과 잘 어울리지 않는다는 증명
- 29. Spring 서버/클라이언트 세션과 최대 절전 모드 세션
- 30. 예외 : 데이터베이스 상태를 세션과 동기화 할 수 없습니다.
그것은 분명히 가치가 당신이 '세션'말할 때, 당신은 System.Web.UI.Page.Session 언급하는 . Session 개체는 ASP.NET 페이지의 컨텍스트에서 사용할 수 있습니다. – Llyle