재우니의 블로그

 

 

asp.net webform  에서 잘못된 경로로 사용자가 호출할 경우, 이를 분기해 주는 곳은 web.config 도 있지만, 잘못된 특정 경로마다 다르게 이동시키기위해서 코드로 구현하고자 할 때는 global.asax 에서 사용하는게 좋다.

 

protected void Application_Error(object sender, EventArgs e)
{
 Exception exc = Server.GetLastError();

 // 페이지가 없을 경우,
 if (exc.GetType() == typeof(HttpException))
 {
  //사용자가 이전의 페이지경로를 호출할 경우,
  if (exc.Message.ToLower().Contains("/deskpluseip/33/board/list.aspx") == true)
  {
   //변경된 페이지로 이동하자.~~
   Response.Redirect("/DeskPlusEIP/EIP/DeskPlusEPDefault.aspx");
  }
 }            

 //서버에서 나온 오류 화면은 보안상 깔끔히 지우장.~~
 Server.ClearError();
}


 

 

잘못된 경로를 호출 시, Application_Error 이벤트 함수에서 이를 취급하여, exception 인지 체크 후 에러메시지 안에 사용자가 잘못 기재한 경로를 비교해서 원하는 변경 페이지로 redirect 하는 구문이다.

 

참고 자료 : https://msdn.microsoft.com/en-us/library/24395wz3(v=vs.100).aspx