MVC 4 (C#) でオンライン試験アプリケーションを作成していますが、試験の時間制限 (期間) を適用するのに問題があります。これを行う簡単な方法は、サーバーに開始時刻 (サーバーの UTC 時間) を保存させ、UTC から変換されたこのタイムスタンプを使用してクライアントに終了日を計算させることです。問題は、このアプローチでは、タイムゾーン、サーバー/クライアント間の非同期クロック、閏年など、カレンダーの問題が考慮されていないことです。
例: ユーザーが 60 分の制限時間で試験を開始します。サーバーは開始時刻を (コントローラー アクションで) 認識し、試験期間の終了時にサーバー側の検証を行う必要があります。同時に、クライアント側はカウントダウン (javascript?) を表示し、制限に達すると試験を終了する必要があります。
この例に従いましたが、サーバーの時刻をクライアントのタイムゾーンに変換するだけです。クライアントのクロックが同期していない場合、問題が発生します。これを私の試験環境に当てはめると、試験時間は正確に 60 分ではなく、+/- 時間ずれることさえあります。
最善のアプローチが何であるかについてのアイデアはありますか? コード例は大歓迎です。
ところで、私は MVC/javascript にかなり慣れていません。