あなたが説明した限り、ASP.NETで実行できると思います。
オンラインのユーザーを追跡するには、サイトが非常に大きくない限り、おそらくメモリ内で追跡することができます。これは、サイトが更新された場合は消去され、複数のサーバーに拡張する必要がある場合は機能しませんが、それはまだ懸念事項のようには思えません。ユーザー名をユーザーの状態にマップする辞書を保持するだけです。
これはかなりミニマルなアプローチですが、何でもです。
状態を更新して誰がオンラインであるかを検出する1つの方法は、呼び出し元がオンラインであるかどうかをチェックし、オンラインである場合は状態を更新するHttpModuleを構築することです。HttpModuleには、認証後を実行してユーザーの状態を更新するイベントがあります。また、最後にアクティブになった日時も追跡します。
「パズルを送る」という限り、それは別のことです。ユーザーがパズルを探すためにページに移動するのに十分な場合は、現在のパズルをロードするページを追加するだけです。ユーザーの操作なしで人物のパズルを表示する必要がある場合は、AJAXを使用して数秒ごとに新しいパズルがあるかどうかを確認する、ユーザーがアクセスするページを作成できます。