2010-01-09 5 views
5

Ist es möglich, ein C# -Programm zu schreiben, das eine Webseite lädt, die Webformular-Parameter zur Anmeldung übergibt, dann auf einen Link klickt und die Seiteninformationen herunterlädt? Natürlich würde ich den Benutzernamen und das Passwort angeben.Ist es möglich, sich mit C# auf eine Website einzuloggen?

Im Zusammenhang, sagen wir, ich möchte überprüfen, ob es neue Nachrichten Updates auf meinem Schulkonto gibt, die ich mit meinem Schulbenutzername/Passwort anmelden muss. Kann ich mein Programm mit den gewünschten Informationen versorgen und es irgendwie dazu bringen, diese Parameter an das Webformular zu übergeben und auf der Seite fortzufahren?

Antwort

8

Ja, es ist möglich, programmatisch anmelden, um eine Website.

Sie müssen wissen, wie Ihre Schule Website Logins handhabt. Nehmen wir an, der Anmeldungshandler Ihrer Schulwebsite ist ein Login.aspx, und Benutzername und Passwort werden als POST akzeptiert. Dann müssen Sie eine POST-Anfrage von Ihrem Programm senden, indem Sie Ihren Benutzernamen und Ihr Passwort als POST-Variablen zu Ihrer Anfrage hinzufügen.

Hoffe, dass hilft.

+1

Awesome, coole Klasse, die ich nicht eingeführt hatte :) Danke – Chris

5

Wenn die Login-Seite verwendet HTTP-Authentifizierung (Ihr Browser zeigt eine Benutzername/Passwort-Eingabeaufforderung), dann können Sie es mit der URL senden durch etwa so:

http://username:[email protected]/

Die WebRequest können auch festlegen, die Sie Es ist Credentials-Eigenschaft und verwenden Sie den Benutzernamen und das Passwort auf diese Weise.

+3

Ich hoffe, dass sie nicht nur HTTP mit Chris verwenden, um dort zur Schule zu gehen. Sie werden HTTPS brauchen, um ihn davon abzuhalten, zu hacken. ;) –

+0

+1 für HTTP auth – jrharshath

1

Ein alternativer Ansatz zur Verwendung der Klasse WebRequest ist die WebBrowser-Steuerung. Es ist im Grunde ein Internet Explorer "Panel", das Sie sowohl programmgesteuert als auch durch Benutzerinteraktion steuern können. Die API des Steuerelements kann ein wenig schwierig zu verwenden sein, aber es gibt Ihnen Zugriff auf das DOM der geladenen Seite, die dann durch Code manipuliert werden kann. Dies kann manchmal nützlich sein. Ich habe es selbst in einigen Web-Scraping-Anwendungen verwendet.

Verwandte Themen