古いaspxコードのバグを追跡しています。問題は、2人のユーザーが非常にまれな1つ(1/10,000ページビュー程度)のユーザーが混在していることです。ユーザAはユーザBのデータを見る。Aspx、クラスのグローバルインスタンス、コード構造の可能性のあるバグ
loginpageでPublic Module MyGlobals
Public myUser As CMyUser
End Module
、我々は、ユーザー名/パスワードを検証している場合に有効な、その後coorospondingユーザーID:我々は、このようにモジュールで定義されているユーザークラスを持っている:ここでは
は、コードが構成されている方法ですDBからロードされた、と私たちは何されています
FormsAuthentication.SetAuthCookie(userid, False)
はその後、我々は安全な場所にリダイレクトします。安全なエリアマスターページでは、イベントPage_Initに、我々はその後、持っている:
If Context.User.Identity.IsAuthenticated then
' Initialize the user class (user data is loaded)
MyGlobals.myUser = New CMyUser(Context.User.Identity.Name)
Else
' Redirect to loginpage
End If
以下、持っているすべてのページから
MyGlobals.myUser
インスタンスにアクセスすることが安全ですマスターページとしての安全なマスターページ、またはこの構造に問題がある可能性がありますか?
はグローバルは、すべてのページリクエストの最後でスコープの外に落ち反対しないだろうか? – Emyr