セッションで現在ログインしているユーザーに関する情報をキャッシュします。CurrentUser
この情報は、グローバルアプリケーションクラスのプロパティが使用されるたびに遅延読み込みされます。これは、MembershipProviderのカスタム実装でGetUser()を呼び出すことによって行われます。これは、セッションからユーザーをロードするか、DBからユーザーをロードしてセッションにユーザーオブジェクトをスローします。
このシナリオをどのように処理する必要がありますか?
- ユーザーがログインします。
- 管理者はユーザーを削除します(または非アクティブ化します...要点は、ユーザーがこれ以上ログインできないことです)。
- ユーザーのセッションが期限切れになります。
- ユーザーはページに移動したり、リクエストを行ったりします。
現在、このシナリオが発生した場合、ASP .NETフレームワークがGetUser()を呼び出すため、NullReferenceExceptionsがいたるところにスローされます。これは、データベースでユーザーが見つからないために何も返さないためです(また、セッションが期限切れになったため、セッションには何もありません)。