세션이 만료되었는지 확인하는 데 가장 적합한 이벤트는 무엇입니까? 각 서버 요청을 트랩하려면 노력하고있어 세션이 null 인 경우 다른 페이지로 리디렉션하십시오.ASP.NET 글로벌 이벤트
답변
이것은 종종 모든 otehr 클래스에 대한 기본 Page 클래스를 사용하고 Page_Load 메서드에서이를 구현하면 가장 잘 수행됩니다. 새로운 세션이 Session_OnStart 접선에 의해 생성되는 경우
당신은 확인할 수 있습니다 - http://msdn.microsoft.com/en-us/library/ms178583(VS.80).aspx
당신은 Global.asax에 파일에 Session_OnStart라는 이름의 서브 루틴을 추가하여 Session_OnStart 이벤트를 처리 할 수 있습니다. Session_OnStart 서브 루틴 은 요청이 새로운 세션을 시작하면 요청의 시작 부분에 실행됩니다. A 요청이 이루어져서 SessionID 값을 포함하지 않거나 요청에 포함 된 속성의 SessionID가 만료 된 세션을 참조하는 경우 새 세션이 시작됩니다.
사용자가 방금 도착했거나 세션이 만료되었는지 여부에 관계없이 새 세션을 만들 때이를 효과적으로 알 수 있습니다.
두 시나리오를 확실하게 구분하는 것은 어렵습니다. 난 당신이 세션 쿠키 또는 세션 쿠키 (cookieless)에 포함 된 세션 ID를 보류하려고 할 수있을 것 같아요,하지만 당신은 위의 이벤트에 도착하기 전에 확인하고 나중에 요청이 있는지 확인해야합니다 원래 세션 ID. 쿠키가없는 버전의 세션 ID를 얻을 수 있는지 확인하십시오. asp.net에서 제공하는 URL에서 제거되므로 수명주기 초기에 확인할 수 있을지 확실하지 않습니다.
Page 클래스를 상속 한 BasePage 클래스를 사용하십시오. 모든 aspx 페이지가 해당 BasePage 클래스를 상속 받도록하십시오. BasePage 클래스에서 OnInit 이벤트를 재정 의하여 Session 또는 Cookie를 확인하고 사용자를 로그인 페이지로 리디렉션 할 수 있습니다.
구현하기 쉽고 사용하기 쉽기 때문에 모든 광산 webforms 앱에이 방법을 사용합니다.
- 1. JQuery 하위 글로벌 이벤트
- 2. 안드로이드 글로벌 클릭 이벤트
- 3. 글로벌 이벤트 핸들러
- 4. 글로벌 콘텐츠로드 이벤트 리스너
- 5. jQuery 글로벌 이벤트 및 성능?
- 6. 글로벌 터치 이벤트 캡처 (Symbian)
- 7. JQuery를 사용한 글로벌 이벤트 레지스트리
- 8. ASP.Net 페이지의 글로벌 타이밍
- 9. asp.net 글로벌 리소스 문제
- 10. ASP.NET MVC 글로벌 리디렉션
- 11. Asp.net "글로벌"변수
- 12. ASP.NET 글로벌 클래스 | 전역 변수
- 13. ASP.Net 웹 사이트의 글로벌 데이터
- 14. Asp.net MVC 3 글로벌 querystring?
- 15. 글로벌 자바 스크립트 이벤트 처리 개체 컨텍스트
- 16. C# : 글로벌 마우스/HID 이벤트 캡처 방법
- 17. 글로벌 WCF ServiceHost 요청 이벤트 캡처
- 18. 글로벌 쉘 훅 로컬 이벤트 만 등록
- 19. asp.net mvc 3.0 SSL 페이지의 글로벌 필터
- 20. asp.net mvc에서 글로벌 인증을 얻는 방법
- 21. ASP.net 웹 페이지의 글로벌 데이터 보유
- 22. 개인용 글로벌 대 공개용 글로벌
- 23. TreeView 이벤트 처리 ASP.Net
- 24. 사전 렌더링 이벤트 asp.net
- 25. Asp.net MVC에서 이벤트 처리
- 26. ASP.NET GridView Button 이벤트
- 27. DropDownList의 ASP.Net 클라이언트 이벤트?
- 28. Asp.Net MVC OnSessionStart 이벤트
- 29. ASP.NET 컨트롤 변경된 이벤트
- 30. ASP.NET/C# 이벤트 차이
@ck 이것은 실제로 global.asax 일입니다. – eglasius
방금 옵션을 제공하고 있습니다. – cjk
실제로 - OP가 클래스별로 클래스의 페이지로 리디렉션하려는 경우 페이지 이벤트에 추가하는 것이 가장 좋은 방법입니다 (이후이 이벤트를 page_load보다 먼저 추가하겠습니다. 페이지 처리기 processrequest가 시작되기 전에 세션이 준비되어 있습니다. – annakata