Question

Je suis en train de se connecter à un site en utilisant CookieAwareClient (code ici: C # WebClient Connectez-vous sur site Web ). Lorsque je me connecte au site en utilisant mon navigateur Web, je reçois environ 10 cookies. Si je désactiver JavaScript et essayez de vous connecter, je reçois 5 (ActiveTab, id, CMIM, PHPSESSID, nom d'utilisateur). Mais lorsque je tente de se connecter en utilisant le CookieAwareClient le seul biscuit être sauvé est PHPSESSID.

Quelle pourrait être la raison pour laquelle la que les autres cookies ne sont pas enregistrées? Je sais que le WebClient ne JavaScript exécute pas mais les 3 autres cookies qui sont générés lorsque JavaScript est désactivé ne sont pas conservés soit.

Était-ce utile?

La solution

Tout d'abord, une question évidente: avant la mise hors script dans votre navigateur et essayé de vous connecter, avez-vous d'abord d'effacer vos cookies? Dans le cas contraire, les cookies et essayez de nouveau.

En supposant que vous avez fait effacer les cookies d'abord et encore obtenu 5 nouveaux cookies après une connexion sans script, puis en regardant les noms de cookie manquants Je suppose que votre CookieAwareClient est pas vraiment réussi à se connecter à l'utilisateur. L'absence d'un cookie « nom d'utilisateur » est ce que je pense si la connexion n'a pas réussi. Quand vous regardez le code HTML retourné par votre demande de connexion, ça ressemble une connexion réussie? Ou est-ce retour une sorte d'erreur?

Si le code HTML renvoyé est une connexion réussie, le prochain coupable possible, je regarderais seraient demandes supplémentaires en cours d'exécution par le navigateur mais pas Exécutés par votre code. Par exemple, la page de connexion pourrait avoir un REFRESH META redirigé vers une autre page (qui a mis un cookie). Ou la page de connexion peut contenir un IFRAME, IMG, SCRIPT, etc., qui, à son tour définir un cookie. Pour diagnostiquer, utilisez Fiddler, Firebug, ou tout autre outil similaire pour voir ce que les requêtes HTTP spécifiques sont en cours d'exécution par votre navigateur dans le cadre du processus de connexion. Assurez-vous que le POST à ??la page de connexion fait tout le réglage des cookies, et sinon, vous devrez ajouter des demandes supplémentaires à votre code après la première connexion.

S'il se trouve, il n'y a qu'un seul réglage des cookies de requête HTTP, le problème est likley être les données en-têtes HTTP POST ou que votre code envoie (ou ne pas envoyer) au serveur. Le navigateur envoie probablement différents en-têtes ou des données POST. Cela nécessite aussi le diagnostic Firebug, Fiddler, ou un outil similaire pour comparer les données en-têtes HTTP POST et qu'un navigateur envoie par rapport à ce que votre code envoie.

Si aucune de ces travaux de suggestions, poster un commentaire et nous pouvons itérer.

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