2009-06-05 17 views
0

現在、イベントハンドラで制御の流れを理解するのに役立つ必要があります。今度は、まだ開いているセッションでセッションの有効期限が切れた後、MyButton1をクリックしようとすると、「承認されていません」と挨拶されますが、MyButton1_Click内のコードは引き続き実行されます。誰も私がこのタイプの状況を正しく処理する方法の方向に私を指摘できますか?私はちょうど新しいSecurityException()をスローして、catch(SecurityException)に必要なエラーを表示することができると仮定しましたが、イベントハンドラはまだ実行されます。前もって感謝します。は、次のように私はいくつかのコードを持って、

+0

私が見る限り、イベントハンドラは完璧に動作するはずです。 イベントハンドラを停止するボタンのイベントハンドラを停止するコードは何もありません。間違っていると私を修正してください:) – Moulde

+0

OnLoad 。マークされた答えに書かれているように、私は事を過度に複雑化していました。 –

答えて

1

あなたはMSDNからな、このコードのようにコードの周りに認証チェックを投げることができます。

private void Page_Load(object sender, EventArgs e) 
{ 
    // Check whether the current request has been 
    // authenticated. If it has not, redirect the 
    // user to the Login.aspx page. 
    if (!Request.IsAuthenticated) 
    { 
     Response.Redirect("Login.aspx", true); 
    } 
} 

私は、これは、ユーザが明確に彼らはもはや認証されていることを見ていないのでResponse.Write()よりもクリーンであると考えています。

+0

それは実際に私がやっていることです、私はちょうど質問を簡略化するためにそれを書きました。私は、各イベントハンドラの周りに認証ブロックを配置しようとしていました。私は、ユーザーがもはや認証されておらず、このシナリオでイベントハンドラに続行していないときに、OnLoad()に何らかの例外をスローすることによってこれが達成されることを期待していました。 –

+0

Response.Redirectの重要な部分を逃しました... Response.Redirect( "Login.aspx"、true)に変更してください。これはページの実行を停止させるオーバーロードです –

+0

入手しました。ありがとう。 –

関連する問題