2011-07-28 85 views
1

我寫在我的Page_Load像如果(會話[登錄ID] == NULL)

if(Session[loginid]== null) 

然後重定向到登錄頁面或其他page.Else填充list.There是一個下拉列表,並在2個按鈕的控制我page.Does我需要寫

if(Session[loginid]== null) 

在填充列表的功能,它的selectedindexchange功能和按鈕event.Selectedindexchange再次調用2內it.Does我需要在該函數寫也是另一種功能。

SamplePage.aspx

1 DROPDOWNLIST 2 Button1的 3將Button3

SamplePage.aspx.cs

1 Page_Load() 
2 Populate() 
3 ddl_SelectedindexChange() 
4 Button1_click() 
5 Button2_click() 
6 function1() 
7 fuction2() 

回答

0

在Page_Load()做到這一點:

if(Session["loginid"]== null) 
{ 
    Response.Redirect("Login.aspx") 
} 
else 
{ 
    Populate(); 
}  

因爲如果用戶將被重定向到登錄頁面Session [「loginid」]爲null,因此不會執行其他函數,但將調用Login.aspx的Page_Load。因此,不需要在其餘的函數中包含空檢查。

+0

,謝謝你的回覆。 – Komal

2

你可以寫一個基類是這樣的:

public class SecurePageBase : System.Web.UI.Page.Page 
{ 
    protected override void OnPreInit(EventArgs e) 
    { 
     if(Session["loginid"]== null) 
     { 
      Response.Redirect("Login.aspx") 
     } 

     base.OnPreInit(e); 
    } 
} 

的想法是,你可以創建你的網頁是這樣的:

public partial class DefaultPage : SecurePageBase 

然後,在Pre_Render()事件您的網頁,請致電Populate()例程填充列表。如果用戶的會話不包含LoginID,那麼用戶將被重定向回登錄頁面(理論上:)。

試試這個,讓我知道如果它是你需要的,否則我會刪除這個答案來節省時間。

+0

傑森,我認爲這很困難或令人困惑。讓我知道另一種方式。 – Komal

+0

什麼特別令你困惑?此解決方案使用面向對象的主體來共享通用功能(安全性查找),無論從哪個頁面繼承它。這絕對是一個好習慣。 –