2010-09-15 7 views
0

J'ai deux sites Web .NET, configurés pour partager des sessions entre-deux via SQL db. Le site Web stocke et récupère la session en utilisant session("MY_Session").add et Session("MY_Session"). Ce qui est stocké est essentiellement une classe personnalisée avec leur nom d'utilisateur et leur nom.Les utilisateurs obtiennent la session d'autres utilisateurs!

Le site Web parent est configuré dans IIS à l'aide de DefaultAppPool, puis le site secondaire est configuré en tant qu'application de répertoire virtuel dans le même pool. .

Je ne suis pas tout à fait sûr de savoir comment il est mis en place sur SQL pour les sessions que je ne l'ai pas mis dans

Dans le web.config pour les deux applications, il est défini comme suit:

sessionState mode="SQLServer" 
sqlConnectionString="server=xxxxx;uid=uuuu;pwd=pppppp;Application Name=NNNNNN"/ 

les utilisateurs affirment que parfois ils ouvrent leur navigateur et allez sur le site et trouver que d'autres informations de personnes (à partir de la même organisation) comparaît ...

Toute personne capable de me dire ce que je fais mal et que faire ensuite s'il vous plaît?

Répondre

2

Cela peut être un problème de mise en cache, s'il y a un serveur proxy impliqué - assurez-vous que tout contenu personnalisé est correctement marqué afin qu'il ne soit pas partagé entre les clients.

Un en-tête comme cela devrait améliorer les choses:

Cache-Control: privé

+0

Merci pour le conseil. Cela devrait donc forcer le PC des utilisateurs à se rafraîchir du serveur mais je suis confus pourquoi ils attraperaient la session de quelqu'un d'autre? Je veux dire, ces gens prétendent qu'ils n'ont entré aucun nom d'utilisateur ou mot de passe et sont capables de naviguer sur l'ensemble du site et d'accéder aux informations d'autres personnes! presque comme une session de piratage – Ichirichi

+0

Je suis sûr de supposer qu'ils utilisent des PC différents? – Spooks

+1

@Ichirichi Il se peut que la session ne soit pas partagée, mais le contenu généré en fonction de la session a été mis en cache par un proxy intermédiaire et donné à un client différent sans que la requête ne soit renvoyée à votre serveur. –

Questions connexes