2011-04-15 3 views
0

웹 페이지에 특정 쿠키가있는 경우에만 액세스 할 수있는 aspx 페이지가있는 폴더가 있습니다.Internet Explorer에 캐시 된 페이지가 표시됩니다 (쿠키가 필요함)

page_load 이벤트에서 Default.aspx로 리디렉션되지 않으면이 쿠키가 있는지 확인합니다. 이것은 Google Chorme 및 FireFox (3, 아직 테스트하지 않은 2)와 같은 브라우저에서 잘 작동합니다. 하지만 ... 어떤 이유에서 IE는 일종의 쿠키를 보냅니다. 내 웹 사이트에서는 쿠키를 사용할 수 있다고 생각합니다.

그래서 쿠키를 삭제하기 위해 내 페이지에 버튼을 추가했습니다. 하지만 내 코드에 따라 쿠키가 존재하지 않습니다 (올바른). 내 가정은 IE가 페이지를 캐싱한다는 것입니다. 따라서 캐시를 지우면 페이지 코드가 올바르게 작동하고 Default.aspx로 리디렉션됩니다.

쿠키가 없으면 폴더에 대한 액세스를 거부하는 방법이 있습니까? IE가 작동하지 않는 페이지를 표시하지 않도록하려면 어떻게해야합니까?

설명하기가 어렵습니다.

내 쿠키 검사 코드는 이것이다 : 제공

protected void Page_Load(object sender, EventArgs e) 
{ 
    { 
     SimpleAES decrypt = new SimpleAES(); 
     //Check for Authentication Cookie 
     HttpCookie auth_Cookie = new HttpCookie("WEB_AUTH"); 
     auth_Cookie = Request.Cookies["WEB_AUTH"]; 
     if (auth_Cookie != null) 
     { 
     //Some code to execute if Cookie exists and holds correct values 
     } 

     else 
     { 
     //If there isn't a cookie, redirect to login.aspx 
     Response.Redirect("~/Default.aspx"); 
     } 
    } 
} 

어떤 도움도 환영받을 것입니다! 감사

는 쿠키를 사용할 수없는 경우 난 그냥 폴더에이 페이지를 표시 할 수 없습니다 'XXX'원하는 덧붙였다. IE는 페이지를 실제로로드 할 수 있는지 여부를 확인하기보다는 로컬 캐시에서 페이지를로드합니다. 무엇을해야합니까?

편집

폴더 'XXX'의 페이지는 쿠키 체크 코드에 상주하는 1 마스터 페이지가 있습니다.

답변

1

페이지를 캐싱에서 브라우저를 방지 할 필요가있다. 요구 사항 (http://msdn.microsoft.com/en-us/library/system.web.httpresponse.cache(v=VS.100).aspx)에 따라 Response.Cache를 설정해야합니다.

이론적으로 브라우저는 캐싱 헤더를 완전히 무시할 수 있으며 실제로는 자체 캐시에서 페이지를로드 할 수 있습니다. 실제로 모든 브라우저는 캐싱 헤더를 존중합니다.

관련 문제