2012-04-24 148 views
0

我想密碼保護一個asp.net網站,我做了這個好,但是如果他們把/home.aspx地址的結尾,那麼它會通過傳遞登錄頁面,是否有辦法讓這些其他頁面只能通過按鈕訪問,如果直接訪問它們,它會將您重定向到登錄頁面?密碼保護一個asp.net網站使用登錄頁

感謝

+0

您需要提供更多信息。你使用什麼技術進行登錄?請向我們展示一些示例代碼 – Curt 2012-04-24 10:59:29

+0

我目前正在使用硬編碼的密碼和用戶名,這對我正在製作的網站來說沒什麼問題,我需要做的是停止/home.aspx等被寫入URL的末尾通過登錄頁面。 – Sophie 2012-04-24 11:14:24

回答

0

現在你登錄你應該開始一個會話。 這是一些代碼,我在高中的項目

> public void LoginUser(string id, string mail, string ww, string admin) 
>  { 
>   Session["UserID"] = id; 
>   Session["IsAdmin"] = admin; 
>   if(admin == "admin") 
>   { 
>    Response.Redirect("~/Admin/AdminCP.aspx"); 
>   } 
>   else if (admin == "user") 
>   { 
>    Response.Redirect("~/User/UserCP.aspx"); 
>   } 
>   else 
>   { 
>    lblLoginError.Text = "An error has accurred"; 
>    lblLoginError.Visible = true; 
>    lblLoginError.CssClass = "failureNotification left"; 
>   } 
>  } 

這一個使用的一種方法,我使用的檢測,如果用戶是管理員還是普通用戶。 此之後,在Page_Load節的每一頁必須添加

> if (Session["UserID"] == null) 
>   { 
>    Response.Redirect("~/Account/Login.aspx"); 
>   } 

如果會話的用戶ID運行這將檢查每次。如果它是空的,登錄從不發生,所以用戶將被重定向到他可以登錄的頁面。

希望對您有所幫助;-)

0

您可以在會話中存儲登錄狀態,並在頁面加載或初始化時檢查isLoggedin標誌,該標誌只有在成功登錄後纔會設置。這不會阻止他們在登錄時直接導航到頁面,但如果他們不登錄,則會將其保留。

+0

你能給我舉個例子嗎?登錄後用戶可以看到所有頁面,所以你說的是理想的 – Sophie 2012-04-24 11:19:58

+0

對於你的登錄腳本只需添加如 Session [「LoggedIn」] =「true」 並加載到頁面加載或onInit只需放入 if(Session [「LoggedIn」] == null || Session [「LoggedIn」]。ToString()!=「true」) { response.redirect //登錄頁面 } – ReiMasuro 2012-04-24 13:34:01