2010-01-09 15 views
5

¿Es posible escribir un programa C# que cargará una página web, pasará los parámetros de formulario para iniciar sesión, luego hará clic en un enlace y descargará la información de la página? Obviamente, estaría proporcionando el nombre de usuario y la contraseña.¿Es posible iniciar sesión programáticamente en un sitio web con C#?

En contexto, digamos que quiero verificar si hay nuevas actualizaciones de noticias en mi cuenta de la escuela, que debo iniciar sesión con el nombre de usuario/contraseña de mi escuela. ¿Podría suministrar a mi programa la información deseada y de alguna manera hacer que pase estos parámetros al formulario web y continuar a lo largo de la página?

Respuesta

8

Sí es posible iniciar sesión mediante programación a un sitio.

Necesita saber cómo el sitio web de su escuela maneja los inicios de sesión. Supongamos que el controlador de inicio de sesión de su sitio web es un Login.aspx y requiere nombre de usuario y contraseña como POST, luego debe enviar una solicitud POST desde su programa usando WebRequest, agregando su nombre de usuario y contraseña como variables POST a su solicitud.

Espero que ayude.

+1

Awesome, cool class No me habían presentado :) Gracias – Chris

5

Si la página de inicio de sesión utiliza la autenticación HTTP (el navegador muestre una petición de nombre de usuario/contraseña), entonces se puede enviar a través de la URL así:

http://username:[email protected]/

El WebRequest también le permite establecer es propiedad de Credenciales y también usa el nombre de usuario y la contraseña.

+3

Espero que no solo usen HTTP con Chris yendo a la escuela allí. Van a necesitar HTTPS para evitar que piratee. ;) –

+0

+1 para HTTP auth – jrharshath

1

Un enfoque alternativo al uso de la clase WebRequest es el control WebBrowser. Básicamente es un "panel" de Internet Explorer que puede controlar tanto mediante programación como a través de la interacción del usuario. La API del control puede ser un poco difícil de usar, pero le da acceso al DOM de la página cargada, que luego puede manipularse a través del código. Esto puede ser útil a veces. Lo he usado yo mismo en un par de aplicaciones de raspado web.

Cuestiones relacionadas