2011-11-17 2 views
1

나는 이것에 대해 Google에서 많은 검색을 수행했습니다. 나는 모든 코드를 가지고 있지만 그 코드는 작동하지 않습니다. 로그 아웃 버튼을 만들었고 버튼을 클릭하면 사용자가 로그 아웃 페이지로 리디렉션됩니다.하지만 더 이상 일이 잘 풀리지 않습니다. 여기뒤로 버튼 문제 및 로그 아웃 버튼

는 로그 아웃 페이지

protected void Page_Load(object sender, EventArgs e) 
{ 
    Session.Abandon(); 
    Session.Clear(); 
    Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.Cache.SetNoStore(); 

} 
protected void Timer1_Tick(object sender, EventArgs e) 
{ 
    string redirectUrl = FormsAuthentication.LoginUrl + "?ReturnUrl=loginAcc.aspx"; 
    FormsAuthentication.SignOut(); 
    Response.Redirect(redirectUrl); 

} 

편집에 대한 코드입니다 : 다음과 같은 예외가 발생합니다 리소스를 찾을 수 없습니다.

설명 HTTP 404. 찾고있는 리소스 (또는 해당 종속성 중 하나)가 제거되었거나 이름이 변경되었거나 일시적으로 사용할 수없는 것일 수 있습니다. 다음 URL을 검토하고 철자가 올바른지 확인하십시오. 요청 된 URL : /MailFormat/login.aspx

+0

** 추가 작업 **에 대해 자세히 설명해 주실 수 있습니까? – V4Vendetta

+0

* "더 이상 가지 않는 것들"*? 특정 문제가 무엇입니까? – Polynomial

+1

"그 이상의 것들이 잘되지 않는다"는 것은 무엇을 의미합니까? –

답변

0

타이머 컨트롤이 보이지 않습니다. 귀하의 페이지에 타이머 컨트롤이 있고 활성화되어있어 Timer1_Tick이 해고 될 것입니까?

+0

yuppp..Its은 <인증 모드 = "양식"> 나는 웹에이 태그를 설정할 수 – mona

0

아래 코드를 사용해보십시오.

Response.Redirect(FormsAuthentication.LoginUrl); 

FormsAuthentication.RedirectToLoginPage()는 더 이상입니다. Web.config에 defaultUrl 속성을 설정해야합니다. 즉, <forms loginUrl="login.aspx" defaultUrl="index.aspx" />

+0

날 – mona

+0

<구성> 을 알려 config..Plz .. 사용 가능 <양식 = "login.aspx"defaultUrl는 = "index.aspx"loginUrl> 에게는 무엇을 당신이하려는 것은 –

+0

thanxxx 그래서 muchh FR 도움말 – mona

0

세션 및 인증은 로그 아웃시 동기화해야하는 두 가지 작업입니다. Logout Page_Load 당신이해야한다고 생각합니다 FormsAuthentication.SignOut(); 그런 다음 세션을 지 웁니다.

0

는 내가 자바 스크립트 함수이 함수

<body onload="disableBackButton()"> 

이 페이지에서 다음 로그 아웃을 클릭 의 모든 seeeions을 지워라는 몸에 다음

<script type="text/javascript" language="javascript"> 
function disableBackButton() 
{ 
window.history.forward(); 
} 
setTimeout("disableBackButton()", 0); 
window.onload=disableBackButton(); 
window.onpageshow=function(evt) { if(evt.persisted) disableBackButton() } 
window.onunload=function() { void(0) } 
</script> 

<script runat="server"> 

을 추가 ===이 쿼리에 대한 해결책을 발견 관리자의로드가 인 경우 null 인 경우 로그인 페이지로 반환합니다. 코드는 다음과 같습니다.

protected void ImageButton2_Click(object sender, ImageClickEventArgs e) 
    { 
     try 
     { 
      Session.Abandon(); 
      Session.RemoveAll(); 
      Session.Clear(); 

      if (Session["hr"] == null && Session["EMPLOYEEID"]==null) 
      { 
       Response.Redirect("~/loginAcc.aspx"); 
      } 
     } 
     catch (Exception ex) 
     { 
      Response.Write(ex.Message); 
     } 

    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Session["hr"] == null && Session["EMPLOYEEID"] == null) 
     { 
      Response.Redirect("~/loginAcc.aspx"); 
     } 
    } 
+0

경우는 로그인 사용자가 세션을 지우고 지우면 집 주변에서 바로 할 수 있습니다.귀하의 솔루션이 로그인 보안을 위해 JS에 응답하는 경우 매우 안전하지 않으므로 접근 방식을 다시 생각하거나 멤버 자격 공급자와 같은 것을 사용해야합니다. 그리고 브라우저에서 뒤로 버튼을 사용하지 않아야하는지에 대해서도 언급하지 않습니다. –

+0

세션을 지우는 것이 충분하지 않았습니다 .bcj 사람은 그가 poage의 URL을 알고있는 페이지를 방문 할 수 있습니다 ... 그게 바로 자바 스크립트를 추가 한 것입니다 ... – mona

+0

하지만 요점은 누군가 JavaScript를 끄면 버튼 코드가 ​​작동하지 않습니다. 아무것도 당신의 솔루션은 효과가 없습니다. 또한 뒤로 버튼을 비활성화해도 페이지가 안전하지 못하며 아무나 직접 페이지에 액세스 할 수 있습니다. –