Deseo descargar algo usando un objeto WebClient en C#, pero el dominio de descarga requiere que inicie sesión. ¿Cómo puedo iniciar sesión y mantener los datos de sesión usando WebClient? Sé cómo publicar datos con WebClient.¿Cómo inicio sesión en un sitio con WebClient?
Respuesta
Si el problema que está teniendo es que puede autenticarse pero no puede mantener la cookie de autenticación aquí hay una versión de WebClient que acepta cookies.
private class CookieAwareWebClient : WebClient
{
public CookieAwareWebClient()
: this(new CookieContainer())
{ }
public CookieAwareWebClient(CookieContainer c)
{
this.CookieContainer = c;
}
public CookieContainer CookieContainer { get; set; }
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
var castRequest = request as HttpWebRequest;
if (castRequest != null)
{
castRequest.CookieContainer = this.CookieContainer;
}
return request;
}
}
EDIT: El enlace que me diste utiliza la autenticación de formularios con HTTP POST, no tengo el tiempo para caminar aunque pero al menos le da un comienzo con Google.
Encontré esto. pero, ¿qué debo hacer? ¿Tengo que autenticarme a través de httpwebrequest o qué? – MonsterMMORPG
Depende del sistema de autenticación que utilice el sitio al que se está conectando. Vea algunas de las otras respuestas en consejos para autenticar –
Deseo que esta publicación incluya un ejemplo sobre el proceso de autentificación real. – Shimmy
Eche un vistazo al uso de la propiedad Credentials. P.ej. si se utiliza la autenticación básica, deberá establecer la propiedad en una instancia de NetworkCredential con el nombre de usuario y la contraseña apropiados.
El sample señalado muestra cómo usar las credenciales de usuario actualmente iniciadas para la solicitud.
no funciona :( – MonsterMMORPG
Okey, ya veo. El servidor usa la autenticación Forms. Eso requiere que publique el nombre de usuario y la contraseña en la url de acción especificada en la página de inicio html. También debe usar un contenedor de cookies para recibir la autenticación. cookie que viene con la respuesta a esa publicación. –
@MonsterMMORPG 'DoesNotWorkNullReferenceException' – C4u
- 1. ¿Cómo inicio sesión con un usuario con dispositivo?
- 2. ¿Cómo puedo iniciar sesión en un sitio web con Python?
- 3. Raspado de sitios PHP con un inicio de sesión seguro
- 4. ¿Cómo implemento 'iniciar sesión con google' en mi sitio?
- 5. ¿Cómo simulo un inicio de sesión con RSpec?
- 6. Integración de openID y oauth como inicio de sesión del sitio web, inicio de sesión y sistema de autenticación
- 7. autenticación scrapy inicio de sesión con cookies
- 8. Inicio de sesión único en varios dominios
- 9. Inicio de sesión en un sitio que usa la autenticación de Live.com
- 10. Cómo evitar el inicio de sesión simultáneo de usuarios en el sitio PHP/MySQL?
- 11. cómo implementar inicio de sesión único en .Net?
- 12. WordPress Iniciar sesión en jQuery Popup: cómo validar el inicio de sesión con jQuery Ajax?
- 13. Inicio de sesión único con WIF
- 14. Cómo iniciar sesión en el sitio web con autenticación básica usando Powershell
- 15. ¿Cómo autentico una solicitud de WebClient?
- 16. Drupal Inicie sesión con los parámetros de inicio de sesión y contraseña en la url
- 17. ¿Cómo iniciar sesión en un sitio web utilizando sarga instalada?
- 18. ¿Cómo agregar opciones de inicio de sesión social en el sitio web?
- 19. Sistema de inicio de sesión con Codeigniter
- 20. ¿Cómo puedo iniciar sesión en un sitio web usando Python?
- 21. C# WebClient con https
- 22. Página de acceso WebClient con credenciales
- 23. cómo iniciar sesión en otro sitio a través de PHP
- 24. Seguir un evento de inicio de sesión en Google Analytics
- 25. control WebBrowser con un inicio de sesión de proxy automatizado
- 26. Intentar crear un usuario de inicio de sesión para Clojure/Korma/PostgreSQL sitio
- 27. Inicio de sesión en J2ME
- 28. Iniciar sesión en el sitio web con java
- 29. Detección de personas que comparten información de inicio de sesión/cuenta para un sitio web
- 30. Un problema típico con el inicio de sesión usando Zend_Form
¿Qué tipo de mecanismo de autenticación requiere el servidor? Básico, Formularios, Windows/NTLM? –
lol he resuelto el problema añadiendo valores de forma general mediante la búsqueda de cookies de firefox :) webClient.Headers.Add ("Cookie", "PHPSESSID = xxxxxxx; mosesuser = xxxxxxx;"); – MonsterMMORPG
¿Qué valores? ¿Te refieres a la verdadera cookie de autenticación? Recuerde, ese valor probablemente expirará y no podrá volver a utilizarse en otro momento. –