Question

Y at-il moyen de fournir une fonction de fermeture de session pour un site qui utilise asp classique, et qui utilise l'authentification Windows (les dossiers restreints ont leurs autorisations défini via le système d'exploitation du serveur et les noms d'utilisateur / mots de passe sont stockés dans Active Directory)?

Si cela fait une différence, le serveur exécutant IIS 5.0. La déconnexion doit travailler pour IE (6, 7, et 8) et Firefox à tout le moins.

Notez que ceci est un vieux et assez grand place - plusieurs centaines de pages individuelles asp - de sorte que toute solution qui impliquerait la modification des pages individuelles ne fonctionnera pas. (Pour la même raison, ainsi que la politesse de base, s'il vous plaît ne suggèrent pas changer à asp.net.)

Ce que j'ai trouvé à ce jour suggèrent que l'envoi d'un code de réponse 401 peut causer certains navigateurs pour effacer l'authentification, mais (1) Je ne sais pas comment faire, et (2 ) Je préfère vraiment quelque chose qui fonctionne réellement, plutôt que de simplement a une chance hors de travailler. Je sais aussi que jongler avec l'objet de la session (.Abandon, par exemple) serait tout à fait inutile, car ce n'est pas où l'authentification se fait.

Était-ce utile?

La solution

Votre utilisation du terme « déconnexion » est source de confusion. En général, ses sites reposibility pour gérer logins / sorties et cela se fait généralement à l'aide de l'objet de la session, mais ce pas ce que vous parlez.

Je vois deux choses possibles que vous pouvez parler.

Connexion d'authentification

Tout d'abord le fait que l'authentification du type fait par sécurité intégrée de Windows est effectuée au niveau de la connexion. Une fois qu'une connexion a été authentifié que la connexion (qui, sous HTTP / 1.1 est par défaut maintenu dans un état ouvert) peut être utilisé sans autre nécessité pour les authentifications poignées de main.

Il est possible de convaincre le client ou le serveur pour fermer la connexion en incluant l'en-tête de Connection: close dans la réponse, mais cela peut ne pas aboutir réellement à la connexion étant fermée.

En outre, un client peut avoir des connexions 2 ou plus authentifiées ouvertes à la fois. Ce cas, l'approche ci-dessus ne fermerait l'un d'entre eux.

La conclusion ici est qu'il ya peu, vous pouvez faire des connexions authentifiées à un niveau par session.

mise en cache des informations d'identification

IE cache les informations d'identification d'un utilisateur entre pour une connexion réseau à un site spécifique pour la durée de la session IE. Donc, même si vous ne réussi à fermer les connexions authentifiées existantes IE simplement réutiliser les informations d'identification mises en cache pour compléter une poignée de main d'authentification ultérieure en silence. Il est possible de configurer le client de ne pas faire cela, mais je doute que quelque chose que vous pouvez utiliser.

Conclusion

La réponse à (au moins la question que je perçois que vous demandez) est la suivante: ne vous ne pouvez pas

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top