2010-08-03 3 views
3

En utilisant le contrôle de navigateur Web ou la requête http en C#, lorsqu'un site Web crée un cookie (ou tente de le faire), existe-t-il un moyen de capturer et d'afficher ce cookie?Capture de réponses de cookie en C#

Répondre

4

Oui, les cookies sont renvoyés dans l'en-tête Set-Cookie. Vous pouvez utiliser la collection HttpWebResponse.Headers pour parcourir tous les en-têtes et lire les cookies, ou encore la collection Cookies qui vous l'offre.

+0

HttpWebResponse.Headers ne vous enveloppera pas si le cookie a été défini avec l'attribut HttpOnly dans la réponse. – rism

2

Bien sûr, vous pouvez utiliser un outil comme Fiddler ou FireBug pour capturer et inspecter les demandes et les réponses envoyées au cours de votre session. Je suis plus familier avec Fiddler, donc je base ma réponse et mon exemple dessus. Par exemple, si je me connecte au portail Outlook Web Access de mon entreprise, j'entre mon nom d'utilisateur et mon mot de passe, et le client OWA écrit un cookie de session sur mon ordinateur. Si je Fiddler en cours d'exécution alors que je me connecte, je peux voir ce cookie en cours d'écriture dans le cadre de la réponse du serveur en raison d'une connexion réussie:

**Cookies/Login** 
    Set-Cookie: sessionid=d8ff0256-7339-4049-81c2-fae98f7c3ed5:0x409; path=/ 

S'il y a plus de cookies envoyés vers le bas, vous Les verront dans le groupe Cookies.

Je peux voir ces cookies si je clique sur la ressource qui a été demandée (la page à laquelle je suis dirigé après une connexion réussie), puis cliquez sur l'onglet En-têtes dans la section Réponse de Fiddler.

Espérons que cela aide!