반응형
Global.asax 란?
Global.asax 파일은 예전 ASP에서 사용되었던 global.asa 파일에서 사용되었던 내용을 .NET 환경에서 사용할 수 있도록 만든 파일입니다. Global 이란 뜻처럼, 전역 데이터를 관리할 수 있을뿐 아니라 웹 사이트의 시작과 종료, 새로운 사용자의 접속 시도 및 접속 종료시 등 여러가지 프로그래밍 코드를 작성할 수 있는 곳입니다.
어떠한 Event 들이 존재하는가?
아래 그림은 사용자들이 접속시, 실행되는 Event 순서입니다.
그 이외에 Applictaion 이 시작/종료 시 1번만 실행되는 Event
- Application_Init
- Application_Start
- Application_Dispose
- Application_End
Session 이 시작/종료 될 때 실행되는 Event
- Session_Start
- Session_End
Event 사용 사례
- Application_Start
HttpApplication 의 Instance가 생성될 때마다 실행되는 이벤트로서, 저는 여기서 라우팅 설정을 많이 해줍니다. 라우팅 설정은 이미 지난 포스팅에 해놨기에 링크만 걸어둡니다.
- Application_BeginRequest
사용자의 Request 를 수신했을 때 발생하는 이벤트입니다. Request 를 수신했을 때 가장 먼저 호출되는 이벤트로서 가장 많이 사용됩니다. 제가 유지보수하고 있는 홈페이지는 HTTPS 를 사용하고 있기 때문에 HTTP 로 접근 시, HTTPS 로 리다이렉트 할 수 있게끔 해당 이벤트에서 처리해주고 있습니다.
1
2
3
4
5
6
|
protected void Application_BeginRequest(object sender, EventArgs e) {
if (!Request.IsSecureConnection && !Request.IsLocal) {
var path = $"https://{Request.Url.Host}{Request.Url.PathAndQuery}";
Response.RedirectPermanent(path, true);
}
}
|
cs |
Request.IsSecureConnection : HTTPS 사용여부를 가져오는 속성
Request.IsLocal : 로컬에서 사용 여부를 가져오는 속성
두가지 모두 만족하지 않다면, HTTP 로 접근했다고 판단하고 HTTPS 로 리다이렉트해주고 있습니다.
반응형
'개발 > ASP.NET' 카테고리의 다른 글
[ASP.NET] Web.Config에 전역상수를 만들어 사용하자. (0) | 2019.12.04 |
---|---|
Server.Transfer VS Response.Redirect 차이를 알아보자. (0) | 2019.12.04 |
[ASP.NET] 404 / 500 Error 일때, Web.config를 사용하자! (1) | 2019.12.04 |
[ASP.NET] Debug/Release에 따라 ConnectionString 변경하기. (0) | 2019.12.04 |
[ASP.NET] js/css을 min 파일로 변경해보자. (0) | 2019.12.04 |