ASP.Net cookieless セッションを使用しているため、ユーザーが以下の URL にアクセスした場合など、302 リダイレクトを介して URL に配置することでアプリケーションのセッション ID を追跡できます。
http://yourserver/folder/default.aspx
その後、次のような URL にリダイレクトされ、実際のページ コンテンツの提供に進みます。
http://yourserver/folder/(S(849799d1-7ec0-41dc-962d-a77e1b958b99))/default.aspx
私が抱えている問題は、アプリケーションのエントリ ポイントが実際には静的ページ(.html 拡張子を持つページなど) であり、ASP.Net がセッション ID を発行せず、このページのユーザーをリダイレクトしないことです。 つまり、ASP.Net がホストするコンテンツ (リンク、iframe など) へのリンクが作成されると、これらのリンクごとに新しいセッション ID が作成されます。互換性の理由から、ページの拡張子を簡単に変更することはできません (ただし、これで問題は解決します)。
ページのセッションを作成するように ASP.Net に指示するにはどうすればよいですか? ページが ASP.Net モジュールによって確実に処理されるように、明示的なハンドラー マッピングを追加しようとしましたが、影響はありません。デバッグ中にSessionIDManager
、このページのインスタンスが作成されていることがわかります (ASP.ハンドラー マッピングに関係なく、Net は既に統合パイプラインを介してこのページを処理していますが、ASP.Net はまだこのページのセッションを作成していません。
IIS 7 を使用していますが、IIS 6 (明示的なハンドラー マッピングを使用) および IIS 8 でも動作する必要があります。