2014-05-13 146 views
0

我有3個用戶並且爲他們提供了登錄頁面。當用戶登錄時,用戶將被引導至他們所關注的頁面。但是,當用戶點擊瀏覽器的後退按鈕時,他們不應該被允許訪問頁面,而不必再次提供登錄憑證。 LoginPage.cs當點擊後退按鈕時阻止用戶訪問頁面

protected void bLogin_Click(object sender, EventArgs e) 
{ 

     datatable = methodobj.getData("select regd_no, pword,user_type from stu_info where regd_no='" + tbUName.Text + "'and pword='" + tbPword.Text + "' "); 

     if (datatable.Rows.Count >= 1) 
     { 
      if (string.Compare(Convert.ToString(datatable.Rows[0][0]), tbUName.Text, false) == 0 && 
       string.Compare(Convert.ToString(datatable.Rows[0][1]), tbPword.Text, false) == 0) 
      { 
       Session["loginstatus"] = true; 

       if (datatable.Rows[0]["user_type"].ToString() == "admin") 
       { 
        Session["regd_no"] = Convert.ToString(updtkitable.Rows[0]["regd_no"]); 
        Response.Redirect("~/aHome.aspx"); 
       } 
       if (datatable.Rows[0]["user_type"].ToString() == "students") 
       { 
        Session["regd_no"] = Convert.ToString(updtkitable.Rows[0]["regd_no"]); 
        Response.Redirect("~/RandomPassword.aspx"); 
       } 
       if (datatable.Rows[0]["user_type"].ToString() == "teacher") 
       { 
        Session["regd_no"] = Convert.ToString(updtkitable.Rows[0]["regd_no"]); 
        Response.Redirect("~/subMark.aspx"); 
       } 
      } 

      else 
      { 
       lbStatus.Text = "**Login fail. Incorrect UserId or Password."; 
      } 
     } 
     else 
     { 
      lbStatus.Text = "**Login fail. Incorrect UserId or Password."; 
     } 



} 

AdminMasterPage.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Cache.SetNoStore(); 
    if (Session["loginstatus"] == null) 
    { 
     Response.Redirect("~/login.aspx"); 
    } 
    else if (!Convert.ToBoolean(Session["loginstatus"])) 
    { 
     Response.Redirect("~/login.aspx"); 
    } 
    else if (Session["user_type"] != "admin") 
    { 
     Response.Redirect("~/login.aspx"); 
    } 
+0

如果您想要阻止用戶在不登錄的情況下訪問特定頁面,則不應存儲會話。對? – user1477388

回答

2

這些頁面被緩存在客戶端,所以沒有什麼可以從服務器端做的。從客戶端

兩種可能的改進:

  1. 告訴客戶關閉瀏覽器退出
  2. 用戶的JavaScript後,檢查頁面加載證書並導航到登錄頁面,如果他們無效

第二種情況也有一些缺點:該頁面或任可見,直到憑據檢查不可見,直到如果隱藏在默認情況下,即使用戶有憑據都是適宜的檢查後。而且他可以在執行JS之前抓取頁面內容(或者完全禁用JS)。 這意味着這並不安全。

相關問題