2010-01-23 4 views
2

J'ai une application client qui communique avec un service Web ASP.NET en utilisant l'authentification par cookie. (les clients appellent une méthode de connexion qui définit un cookie persistant qui est ensuite réutilisé entre les demandes dans la session d'ouverture de session).HttpWebRequest perte de cookies

Cela a fonctionné correctement pendant un certain temps, mais j'ai commencé à obtenir des rapports d'erreur de quelques machines utilisées par un nouveau client qui semblent indiquer que le cookie n'a pas été arrondi avec succès. J'utilise un CookieContainer que j'attache manuellement à chaque HttpWebRequest que j'utilise pour m'assurer que les cookies sont conservés dans toutes les requêtes. demande.

Est-il possible qu'il y ait un logiciel de "sécurité" sur ces machines qui intercepte/bloque la transmission des cookies? (I am en utilisant SSL). Si oui, y a-t-il quelque chose qui peut être fait pour dire ce qui se met en travers?

+0

Etes-vous sûr d'attacher la * même * instance CookieContainer * * à chaque requête HttpWebRequest? Que voulez-vous dire par "J'utilise pour m'assurer que les cookies sont préservés pour chaque demande"? Comment vous assurez-vous cela? – DxCK

+0

pourriez-vous renifler cette communication avec fiddler? –

+0

oui, j'utilise le même container ... ça marche très bien sur 99% des machines connectées, il y en a juste une poignée qui ne marche pas du tout. (Cette citation signifiait que j'attachais le même cookiecontainer à chaque requête web pour que les demandes individuelles partagent le même jeu. – homeInAStar

Répondre

0

Il est très différent que ce logiciel de sécurité puisse même voir à l'intérieur de votre paquet si vous utilisez SSL. Les données SSL doivent être cryptées avant même qu'elles ne se transforment en paquets; généralement, ils sont cryptés avant même d'utiliser send() sur le socket. Sauf si vous avez un logiciel de sécurité impressionnant qui a brisé le cryptage SSL et peut regarder à l'intérieur du paquet, cela ne devrait pas être possible.

Les mêmes machines échouent-elles à chaque fois? Ou est-ce que certaines machines échouent au hasard parfois, et d'autres échouent à d'autres moments? Si c'est le dernier, peut-être qu'il se passe quelque chose sur le serveur, pas sur les clients.

+0

Le même ensemble de 3 machines échoue tout le temps Quand les utilisateurs de ces machines passent à d'autres machines, tout semble bien fonctionner pour eux J'ai déployé quelques diagnostics mis à jour, j'espère que je serai capable de capturer plus d'informations de ces machines – homeInAStar

+0

Vous pouvez activer le tracelogging pour votre application. Voir ceci: http: // fe rozedaud.blogspot.com/2009/08/tracing-with-systemnet.html. Regardez ensuite le fichier journal pour voir pourquoi le cookie n'est pas envoyé. – feroze

+0

En outre, est-il possible qu'il existe un équilibreur de charge entre le client et les serveurs? Donc, si M1 configure le cookie sur la réponse, mais si la requête suivante va à la machine M2, alors M2 n'aura évidemment aucune idée de ce qu'il faut faire avec ce cookie, et pourrait le rejeter. – feroze