2011-11-17 81 views
1

我已經在谷歌搜索很多這個。我得到了所有的代碼,但代碼不起作用。我創建了一個註銷按鈕,並在按鈕的單擊重定向用戶註銷頁面...但進一步的事情並不順利。返回按鈕問題...和註銷按鈕

這裏是註銷頁面

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.您正在查找的資源(或其某個依賴項)可能已被刪除,名稱已更改或暫時不可用。請檢查以下網址並確保它拼寫正確。請求的網址:/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

我在哪裏可以在網絡設置這個標籤config..Plz讓我知道 – mona

+0

<配置> <認證模式= 「表格」> <形式loginUrl = 「login.aspx的」 defaultUrl = 「的Index.aspx」>

+0

thanxxx所以muchh FR幫助 – mona

0

會話和身份驗證是兩件不同的事情,您需要在註銷時同步。我認爲註銷Page_Load你應該做 FormsAuthentication.SignOut();然後清除會話。

0

我找到解決這個查詢===我添加了一個javascript函數

<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"> 

然後身體上調用此函數

<body onload="disableBackButton()"> 

清除所有seeeions上登出點擊 然後 頁負載管理員檢查 會話值 如果爲空則返回喲登錄頁面。以下是代碼

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的登錄安全性,那麼它非常不安全,您應該重新考慮您的方法,或者使用類似於Membership Provider的東西。這甚至沒有提到你真的不應該禁用瀏覽器中的後退按鈕。 –

+0

清除會話是不夠的.bcj人們可以訪問任何頁面,如果他知道poage的URL ...這就是爲此添加了javascript ... – mona

+0

但我的觀點是,如果有人關閉JavaScript,那麼您的後退按鈕代碼會沒有什麼,你的解決方案是無效的。另外單獨禁用後退按鈕並不能保證頁面的安全,任何人都可以直接訪問它們。 –