11
votes

Comment IIS reconnaît-il différentes sessions de .net?

Supposons que je me suis connecté dans une application qui fonctionne de IIS . Maintenant, je ne suis pas déconnecté, mais fermé le navigateur. Et lorsque j'accède à l'application à nouveau, il est par défaut à la page de connexion. Comment IIS reconnaît-il que c'est une nouvelle demande et redirige l'utilisateur à la page de connexion?

J'ai une autre question. Supposons que je ne ferme pas le navigateur, que j'ai utilisé lorsque je me suis connecté. J'ouvre le nouveau navigateur pour demander une page à partir de la même application. IIS reconnaît que c'est une nouvelle demande à l'application et redirige l'utilisateur à la recherche de la page. Pourquoi n'utilise-t-il pas la session ou les cookies existants que le premier navigateur utilise?

S'il vous plaît ne vous êtes pas irrité de mes questions continues ... Je suis d'une énorme confusion. Nous disons HTTP est un protocole apatride. Une fois la page demandée, je me suis connecté. Et la connexion de protocole HTTP sera terminée entre IIS et navigateur, non? Ensuite, je navigue dans d'autres pages de cette application connectée. Maintenant, IIS reconnaît que l'utilisateur s'est connecté sur ce navigateur. Mais lorsque j'ouvre un nouveau navigateur et demandez cette demande, comment l'IIS reconnaît-il que c'est une nouvelle demande? Puisque le protocole HTTP est déconnecté, comment fonctionne-t-il dans le premier cas?


3 commentaires

D'accord. Aussi j'ai un doute un autre doute. Supposons que IAM ne ferme pas le navigateur que je me suis connecté. Et j'ouvre le nouveau navigateur pour demander à la page de la même application. Maintenant, comment IIS reconnaît que c'est une nouvelle demande à l'application et envoie à la page de connexion. Pourquoi ne peut pas utiliser la session existante ou les cookies que le premier navigateur utilise


Merci beaucoup chao. S'il vous plaît trouver ma question mise à jour et aidez-moi


[Essayez ma réponse pour la même question] [1] [1]: Stackoverflow.com/a/20943824/1293175


3 Réponses :


1
votes

Il y a des cookies qui sont passés toujours, peu importe la connexion ou non. Ils sont mappés en session dans IIS.


2 commentaires

Je suis d'accord, mais comment IIS sait que le navigateur est fermé et c'est une nouvelle demande lorsque nous demandons à nouveau cette page à nouveau


@Bala: IIS ne connaît pas d'un navigateur. C'est le navigateur qui a oublié le cookie de session temporaire lorsqu'il est fermé (comme cela devrait le faire) et ne peut donc pas l'envoyer à IIS à partir de la nouvelle instance. Pas de cookie = pas de session.



1
votes

Vérifiez les articles suivants. Ils pourraient être utiles.


0 commentaires

43
votes

Comme vous l'avez dit correctement, http lui-même est apatride et chaque demande est techniquement distincte de toutes les autres. Les sessions, telles qu'utilisées par les sites Web, sont une solution de contournement pour cela. Ce qui se passe, normalement, c'est que le serveur stocke les informations qu'il soutient de maintenir entre les demandes (comme le nom d'utilisateur et / ou l'identifiant de l'utilisateur connecté, par exemple), et attribue cette information à un ID (appelé "ID de session"). Il indique ensuite au navigateur que l'ID de session, de telle manière que le navigateur puisse remettre l'identifiant lorsqu'il est temps de faire une autre demande. Si le navigateur joue sa pièce et fournit l'ID de session, les informations stockées peuvent être récupérées, mises à jour, etc. à chaque demande, offrant un certain degré d'état même sur un protocole apatride.

Les sessions sont généralement implémentées à l'aide de cookies. C'est-à-dire que le serveur remet le navigateur un cookie avec l'ID de session et le navigateur remonte que le même cookie avec chaque demande jusqu'à ce que le cookie expire ou soit autrement oublié. Certains cookies (soi-disant "cookies de session") n'ont pas été enregistrés et sont oubliés lorsque le navigateur est fermé. Un navigateur fraîchement ouvert n'a pas de cookies de session à passer, donc si le serveur utilise des cookies de session pour effectuer des sessions (qu'elle devrait), il envisagera que l'utilisateur ne soit pas encore connecté et les rebondira à la page de connexion s'ils ont besoin de être connecté.

Les cookies de session seront généralement partagés entre les onglets du même navigateur et seront parfois partagés par Windows ouverts par "Fichier> Nouvelle fenêtre" à partir d'un navigateur déjà en cours d'exécution, car ces deux cas seront généralement une partie intégrante de ce navigateur. Mais si vous démarrez le navigateur dans le menu Démarrer, ou si votre système d'exploitation vous permet de démarrer un programme, c'est tout un autre processus - et les cookies de session sont rarement partagés entre les processus.

Le serveur ne se souvient généralement que des sessions à sa fin pour une durée limitée (de quelques secondes à des années, en fonction des paramètres de serveur et / ou de site) après chaque demande qui utilise la session. Si le navigateur passe un cookie qui correspond à une session, le serveur ne se souvient plus, cela agira comme s'il n'y a pas de session du tout. Qui, dans les cas où vous devez vous connecter, rebondissez à nouveau à la page de connexion.


1 commentaires

Merci beaucoup pour m'aider le chaos