メニュー ナビゲーション用のサイトマップを使用して IIS7 で ASP.Net Web サイト プロジェクトを実行していますが、これは以前に見たことのない Cookie のない動作を示しています。
Cookie を使用しないユーザーがサイトにログインすると、セッション ID が含まれていないリンクをナビゲートするという予期された問題が発生し、セッション コンテキストが失われます。この部分はよく理解されているようで、これを手動で処理することもできますが、すべてのユーザーは他の理由で Cookie を有効にすることが期待されており (ここではユーザー ベースが小さいため)、Cookie を使用しないサポートを提供することは優先度が低いです。
私たちが現在再現できるより当惑させる動作は、アプリ プールのリサイクル後にユーザーがサイトにアクセスしたときに、そのユーザーが Cookie を無効にしている場合、期待される Cookie のない URL と動作を受け取りますが、他のすべての Cookie が有効なユーザーは、は、その最初のユーザーのセッション ID を含むサイトマップで作成されたリンクを取得するようになりました。これが意味することは、Cookie を使用しないユーザー A がログインし、Cookie が有効なユーザー B がログインし、ユーザー B がリンクをクリックすると、そのリンクにはユーザー A のセッション ID が含まれていたため、事実上ユーザー A のセッションに参加し、データを見ることができるということです。など。この動作は、サイトがリサイクルされるまで続きます。
Web 構成では、cookieless が自動検出に設定されており、アプリ プールのリサイクルはデフォルトの 29 時間のリサイクル期間になっています。
ソリューション内の奇妙なリクエスト ハンドラーやその他の誤ったカスタム追加を探し始めますが、ざっと見ても、デフォルトのサイトマップ動作以外のものを見ているとは思いませんでした。
ここでの私の質問は次のとおりです。
- これは既知のバグですか、それともすでに文書化されているものですか?
- サイトマップで解決されたリンクは何らかの形でキャッシュされていますか?
- サイトマップ URL のプログラムによる操作は見られませんが、サイトマップからの実際の URL 生成をデバッグして、他のユーザーの Cookie 対応の応答に Cookie なしのセッション ID が含まれている方法と理由を確認する方法はありますか?
これをさらに追跡する方法についての提案をいただければ幸いです。