2010-11-18 5 views
0

Je veux développer un site de quiz en utilisant MVC 2. Une seule page n'affichera qu'une seule question. Le candidat sélectionne ou tape la réponse et appuie sur le bouton Suivant pour continuer.Comment calculer le temps écoulé entre deux demandes consécutives?

Ma logique métier côté serveur enregistrera le temps écoulé entre deux demandes de pages consécutives. Ces horodatages ne doivent être altérés par aucun moyen pour établir un rapport de diagnostic fiable.

Quelle est la meilleure façon de gérer cela?

Répondre

1

Eh bien, je ne voudrais pas réellement enregistrer le temps écoulé - Je voudrais enregistrer l'heure elle-même (en UTC). Vous pouvez très facilement passer de cela à un moment entre les pages, mais vous ne pouvez pas aller dans l'autre sens. Il se peut que vous trouviez utile d'examiner plus tard des sessions particulières, en les filtrant quand elles se sont produites (par exemple, si quelqu'un prétend avoir eu un problème à un moment donné, vous pouvez vérifier s'il était réellement sur le système). Tout ce dont vous avez besoin est une sorte d'identifiant de session/utilisateur pour suivre la session de l'utilisateur, et vous pouvez simplement enregistrer l'heure actuelle. Le minutage sera aussi inviolable que l'horloge du système serveur et la base de données elle-même.

0

Enregistrez l'heure et stockez-la dans la session. Il n'y a donc aucun moyen d'altérer les données du client.

1

Vous pouvez utiliser l'état de session sur le serveur. Cependant, vous devrez réfléchir à ce qui se passe si l'utilisateur ouvre plusieurs onglets/navigateurs, etc.

Vous pouvez également envoyer les horodatages codés au client. Comme ils sont codés, les clients ne pourront pas les modifier.

+0

L'utilisateur peut également simplement supprimer le cookie de session (intentionnellement ou non), ce qui mettrait fin au nombre de diagnostics. – Levi

+0

@Levi C'est pourquoi l'horodatage codé retourné au client est probablement le meilleur, et prend en charge plusieurs onglets/sessions par utilisateur. – marcind

+0

Si le scénario est "ne doit pas être altéré par quelque moyen que ce soit", ce n'est pas vraiment une bonne idée de faire confiance au client. Le client pourrait faire un certain nombre de choses, comme essayer de forger une nouvelle valeur, rejouer une ancienne valeur, ou simplement rompre le contrat (en soumettant le formulaire sans ce champ). – Levi

Questions connexes