이전에 여러 번 묻고 답한 적이 있습니다. 답변을 찾기 전에 모든 게시물을 살펴본 결과 이 다시이되었다고 생각합니다.ASP.Net 로그 아웃이 예상대로 작동하지 않음
사용자가 페이지에 로그인하고 URL 복사본을 가져 와서 로그 아웃 한 다음 다시 브라우저에 붙여 넣으면 브라우저가 로그인으로 리디렉션되기 전에 이전에 매우 간헐적으로 방문한 페이지에 액세스 할 수 있습니다 한 번 더. 이 짧은 창에서 마우스로 충분히 빠르며 버튼이나 다른 컨트롤을 클릭 할 수 있으면 사이트에 다시 로그인 한 채 아무 질문도하지 않습니다.
캐싱을 피하기 위해 성공하지 못하도록 각 Page_Load 이벤트에 주제에 대한 다른 스레드의 다음 코드 제안을 포함 시키려고했습니다.
protected void Page_Load(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
HttpContext.Current.Session.Clear();
HttpContext.Current.Session.Abandon();
Response.Redirect("~/Account/Login.aspx");
}
내가 Server.Transfer()
대신 Response.Redirect()
을 사용해야 다음과 같이 logout.aspx에서
private void ExpirePageCache()
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now - new TimeSpan(1, 0, 0));
Response.Cache.SetLastModified(DateTime.Now);
Response.Cache.SetAllowResponseInBrowserHistory(false);
}
코드는?
브라우저 기록을 프로그래밍 방식으로 지울 수 없으므로 어딘가에 읽었습니다. 조금만 붙어 있습니다. 누구나 단서가 있으십니까?