0
目前,我有一些代碼如下:需要幫助理解控制流程與事件處理程序
protected override void OnLoad(EventArgs e)
{
if(IsAuthorized(param1, param2, ...))
{
//snip
}
else
{
Response.Write("Not authorized");
}
}
protected void MyButton1_Click(object sender, EventArgs e)
{
//snip
}
protected void MyButton2_Click(object sender, EventArgs e)
{
//snip
}
當用戶登錄時,他們可以去的網頁和運行的OnLoad。現在,如果他們的會話在頁面仍然打開的情況下過期,那麼嘗試點擊MyButton1,他們會被「未經授權」迎接,但MyButton1_Click中的代碼仍然會運行。任何人都可以向我指出我將如何正確處理這種情況?我認爲我可以拋出新的SecurityException(),然後在catch中顯示我想要的任何錯誤(SecurityException),但事件處理程序仍然運行。提前致謝。
就我所見,事件處理程序應該完美運行? 你的代碼中沒有任何東西可以停止按鈕中的事件處理程序來停止調用事件..請糾正我,如果我的錯誤:) – Moulde 2009-06-05 22:39:33
問題是什麼是停止控制流後的最佳方法!IsAuthenticated in OnLoad 。正如標記的答案中指出的那樣,我太過於複雜。 – 2009-06-06 00:54:55