認証Cookieを割り当てるために、HttpModuleを使用してWebサイトへの各リクエストをインターセプトしています。これは暫定バージョンですが、HttpModuleに静的リストがあり、新しいリクエストごとに要素を追加していますリスト。テスト目的で、メソッドが機能しているかどうかを確認するためにすべてを応答に書き込んでいますが、リストにユーザーが何人いても、2 つの値しか返されません。
これが私のコードのサンプルです。ユーザーのリストを文字列のリストに置き換えることで、コードをシンプルにしています。
public class SCCModule : IHttpModule
{
private static List<string> _users = new List<string>();
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += OnPreRequestHandlerExecute;
}
public void Dispose()
{
}
public void OnPreRequestHandlerExecute(Object source, EventArgs e)
{
HttpApplication app = (HttpApplication)source;
HttpResponse response = app.Context.Response;
HttpRequest request = app.Context.Request;
_users.Add("A user from " + DateTime.Now + "</br>");
foreach(var u in _users)
{
response.Write(u);
}
}
}
サンプルの index.html を Web サイトから読み込むと、次のようになります。
2012 年 10 月 18 日午後 3 時 37 分 33 秒のユーザー
2012 年 10 月 18 日午後 3 時 37 分 35 秒のユーザー
セットアップに関する情報: モジュールを追加した IIS7.5 を実行しています。これは、実行の優先度の順で最初です。web.config でデバッグを有効にしました。VisualStudio はデバッグ構成をビルドするように設定されており、DLL を Web サイトの bin フォルダーに直接コピーするビルド後のイベントがあります。デバッグするために、w3wp.exe プロセスに接続しています。
興味深い事実: デバッグ時。index.html ページで更新を押した最初の 2 回でブレークポイントがトリガーされ、その後はトリガーされません。入力する新しい URI は、ブレークポイントに 2 回しかヒットしません。
では、10 回更新できるのに、結果が 2 つしか表示されないのはなぜですか?
フィドラーの結果: