私が得たもの:
SecureBasePage.vb
(ログインが必要なページに継承されます)Default.aspx
継承するSecureBasePage
どうあるべきか:クライアントは要求しますDefault.aspx
が、ログインしていないためにログインにリダイレクトされます。
SecureBasePage.vb
このコンストラクターがあります
Public Sub ()
If userIsAuthenticated Then
Else
Throw New LoginException()
End If
End Sub
これにより、例外が発生しますLoginException
。ここで、クライアントをにキックする何らかのグローバル例外ハンドラーによってキャッチされるようにしますlogin.aspx
。
Application_Error()
に関数があることは知っていますGlobal.asax
が、私の意見では、これは例外ハンドラーではServer.GetLastError()
ありません。例外を受け取るだけで、例外をキャッチしないからです。したがって、この関数は、開発者が未処理の例外に関する電子メールを送信できるようにするためのものである可能性が高くなります。これを「グローバル例外ハンドラー」ではなく「グローバル未処理例外ハンドラー」と呼びます。
コンストラクターの例外スローをキャッチするために、ちょっと試してみることができるものはありますか?