2010-08-10 2 views
3

내 asp.net 페이지에서 세션 변수를 확인하고 내 기본 페이지로 리디렉션합니다. IE에서이 페이지가 리디렉션되지 않는 이유는 무엇입니까?

if (Session["OrgId"] != null) 
    { 
     // some logic 
    } 
else 
    { 
      Response.Redirect("../Default.aspx?Sid=1", false); 
    } 

내가 이런 짓을했습니다 내 Default.aspx 페이지에서

,이 GoogleChrome을 작동

Int64 id = GetId(Request.RawUrl.ToString()); 
    if (id == 1) 
{ 
    // I ll show "Session Expired" 
} 

public Int64 GetId(string url) 
{ 
    Int64 id = 0; 
    if (url.Contains("=")) 
    { 
     if (url.Length > url.Substring(url.LastIndexOf("=")).Length) 
     { 
      id = Convert.ToInt64(url.Substring(url.LastIndexOf("=") + 1)); 
     } 
    } 
    return id; 
} 

, 파이어 폭스하지만 IE한다. "작업이 중단되었습니다"예외.

답변

3

시도 변경

Response.Redirect("../Default.aspx?Sid=1", false); 

Response.Redirect("../Default.aspx?Sid=1"); 

또는

Response.Redirect("../Default.aspx?Sid=1", true); 
2

HttpResponse.Redirect Method

Redirect(String, Boolean) 클라이언트를 새 URL로 리디렉션합니다. 새 URL을 지정하고 현재 페이지의 실행이 이어야하는지 여부를 지정합니다.

즉, Response.Redirect("../Default.aspx?Sid=1", false);은 현재 응답을 종료하지 않습니다.

0

IE는 헤더가 전송 된 후 페이지가 끝나기 전에 DOM을 변경하는 것에 대해 다른 브라우저보다 훨씬 더 민감합니다. 참으로 거짓 변경

Response.Redirect("../Default.aspx?Sid=1", false); 

시도 :

는 여기에 귀하의 문제입니다.

페이지 이름의 대소 문자에도주의하십시오. "Default.aspx"와 "default.aspx"는 Windows가 당신을 도망 가게 할지라도 실제로는 같은 페이지가 아닙니다.

관련 문제