2010-02-04 5 views
1

Je devrais créer un programme simple qui se connecte avec des informations d'identification données à certains sites Web, puis naviguer vers un élément (lien). C'est même possible (je veux dire cette chose Authlogin)?HttpRequest: passer à travers AuthLogin

EDIT: SORRY - Je suis sur mon ordinateur de compagnie et je ne peux pas cliquer sur "Vote" ou "Ajouter un commentaire" - la page dit "Fait, mais avec des erreurs sur la page" (IE ..). J'apprécie vos réponses et commentaires, vous m'avez beaucoup aidé!

+0

@Petr: Je suis très amusée de vous ne l'avez jamais voté, soit vers le haut ou vers le bas, jamais !. Vous savez que vous pouvez appuyer sur ces choses flèche au-dessus et en dessous des zéros à côté des réponses? : P –

+1

@Ruben, peut-être qu'il ne lit pas les commentaires non plus. – Benny

+0

@Benny: Hé, ne commencez pas à se quereller et pleurnicher ici - certaines personnes n'ont pas le temps de bavarder et de commenter toute la journée: D Au moins il accepte et ça compte pour quelque chose ... (Et il aura le bon goût de Accepter le mien: D) Peut-être que nous avons besoin d'un badge "lire les commentaires" pour aller à côté d'il commentateur il [il a déjà]. Toutes les idées à offrir, Petr: P –

Répondre

0

Cela dépendra en partie de la manière dont le processus de connexion est géré. Est-ce que c'est fait via un formulaire web? Si c'est le cas, vous devrez poster le formulaire, comme le ferait un navigateur normal. Si cela est fait via l'authentification HTTP, vous devriez pouvoir définir les informations d'identification dans la requête web, lui dire de s'authentifier, et tout devrait bien se passer.

0

oui. c'est possible.

voir code suivant:

 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri); 
     req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested; 
     req.Credentials = new NetworkCredential("admin", "admin"); 
     req.PreAuthenticate = true; 
1

principales choses à faire sont:

  1. Commencez à utiliser Fiddler pour voir ce qui doit être envoyé et de quelle manière
  2. En supposant que nous parlons un formulaire Web normal, vous aurez probablement besoin d'utiliser un CookieContainer avec votre WebRequest s afin d'accepter les cookies qui proviennent de la demande de connexion, puis les réapprovisionner lors de l'envoi subséquent demandes ent (tel contexte n'est pas automagiquement maintenu par HttpWebRequest): -

    CookieContainer _cookieContainer = new CookieContainer(); 
    ((HttpWebRequest)request).CookieContainer = _cookieContainer; 
    
Questions connexes