À l'aide de WebClient ou WebRequest pour vous connecter à un site web et d'accéder à des données
J'essaye d'accéder à des données sensibles sur un site web en utilisant WebClient
/WebRequest
. Il n'est pas officielle de l'API dans ce site, donc ce que je suis en train de faire est de simplement remplir le formulaire HTML et d'afficher les valeurs pour le serveur, donc je suis connecté.
J'ai essayé cette et cette, mais il ne ressemble pas à la prochaine requêtes sont enregistrées.
Le second exemple est beaucoup plus intéressant car évidemment je préfère WebClient
, mais l'héritage WebRequest
fera.
De toute façon, dans le premier exemple, je pense qu'il n'a de connexion, mais la prochaine demande l'accès aux données privées de retour d'une page avec un message "Ceci est réservée aux membres de contenu".
Comment faire un WebClient
en permanence connecté?
OriginalL'auteur Shimmy | 2013-06-19
Vous devez vous connecter pour publier un commentaire.
Mise à jour:
Voir mon commentaire ci-dessous.
Voici ce que j'ai fait et ça fonctionne (crédit).
Ajouter cette classe de première:
Utilisation:
vous ne pouvez pas loginData.ToString(), il sera juste le nom du type.
Il l'habitude de travailler. De toute façon les gars, vous pouvez utiliser
FormUrlEncodedContent
puisReadAsStringAsync
à la place. De toute façon, cette réponse a été bon quand il a été posté, je conseille d'utiliserHttpClient
au lieu de cela, fournir unDelegatingHandler
qui remplaceSendAsync
de connexion. J'espère trouver le temps de rafraîchissement de la réponse.De toute façon j'ai édité ma réponse, j'espère que ça fonctionne maintenant. N'oubliez pas qu'au lieu de downvoting et de la colère, c'est un site web et vous pouvez simplement éditer ma réponse par retour une faveur pour la communauté et pour les autres personnes à la recherche de cette réponse dans l'avenir.
Qui n'a pas fonctionné pour moi que le serveur a renvoyé un code 200 ok, cependant, l'utilisation de cette réponse j'ai pu vérifier si le récipient contenait un cookie nommé .ASPXAUTH pour le bon site, qui a fait le travail
OriginalL'auteur Shimmy
HTTP est sans état. Donc, vous ne pouvez pas WebClient en permanence connecté. La notion de session n'existe pas en HTTP. Les technologies côté serveur comme ASP.NET simuler un comportement dynamique à travers le concept de session à l'aide de cookie ou d'un paramètre de chaîne de requête qui est envoyée en arrière et en avant à chaque demande. Cela dit, il est possible d'émuler un navigateur ne à partir du client web. Si vous avez accès au site web, se connecter en utilisant les identifiants d'accès et de capturer le trafic à l'aide de Violoneux. Ensuite, assurez-vous client web envoie le droit des cookies, des en-têtes de requête, les chaînes de requête, etc exactement le même que le navigateur.
OriginalL'auteur Badri