2013-01-04 3 views
0

어딘가에 놓친 설정이있을 수 있지만 완전히이 문제로 인해 어수선해합니다. 특정 사용자가보고 편집하고 삭제할 수있는 콘텐츠를 제한하는 역할 기반 사용 권한을 사용하는 동적 데이터 웹 사이트가 있습니다. 사용자가 처음 로그인하여 기본 페이지로 리디렉션되면 해당 사용자 역할에 대한 모든 올바른 테이블이 표시됩니다. 사용 가능한 테이블 중 하나를 클릭 한 다음 브라우저의 뒤로 단추를 클릭하면 기본 페이지에 사용자 역할이 지정하는 것과 관계없이 데이터베이스 내에 테이블이 모두 표시됩니다 (). 어떤 사용자 역할에도 사용할 수있는 모든 테이블의보기가 아직 없기 때문에 어쨌든 ie9는이 가상 버전의 페이지를 캐시 할 수 있기 때문에 나는 어리 석다. 뒤로 화살표를 클릭하면 기본 페이지의 page_load가 트리거되지 않으므로 캐시 문제 여야합니다. 기본 페이지를 새로 고침하면 올바르게 다시 표시됩니다.VisualStudio 캐시 페이지에서 IE9 디버깅이 잘못되었습니다.

마스터 페이지로 작업하고 있으며 페이지로드시 생각할 수있는 모든 캐싱 방법을 명시 적으로 해제했습니다. 주의 할

HttpContext.Current.Response.Cache.SetAllowResponseInBrowserHistory(false); 
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
HttpContext.Current.Response.Cache.SetNoStore(); 
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); 
Response.Cache.SetValidUntilExpires(true); 

또 한가지이는 예상대로 내가 FF, 크롬이나 사파리 일에 사이트를 작업을 테스트 할 때 IE9에 문제가 될 것으로 보인다는 것이다.

답변

0

세션 변수에 로그인 한 사용자의 역할을 저장 한 다음 해당 값을 기반으로 필요한 데이터 (테이블 또는 기타)를 표시해야합니다. 세션에서 사용자의 역할에 따라 데이터가 표시되면 나는 너에게 어떤 문제가있을 것이라고 생각하지 않는다. 또한 페이지로드 기능에서 Response.Cache.SetNoStore();을 제공하여 캐시를 비활성화 할 수 있습니다.