2011-06-09 33 views
7

Uso el control WebBrowser en mi aplicación asp.net para generar capturas de pantalla de páginas web. Pude generar imágenes hasta que cambié la cuenta del grupo de aplicaciones. Le he dado al nuevo grupo de aplicaciones todos los derechos necesarios y puedo navegar por mis páginas desde IE. Pero cuando navego hacia él a través del control del navegador web programaticamente obtengo 401.2. Configuré "Falló las reglas de seguimiento de solicitudes" en mi IIS 7.0 y utilicé Fiddler para olfatear las solicitudes y encontré que el encabezado de autenticación no es el correcto.Configuración del encabezado de autenticación para el control WebBrowser - ASP.NET

Pero webbrowser.navigate tiene un método sobrecargado donde podemos pasar encabezados http personalizados. ¿Cómo puedo configurarlo? Solo quiero usar la autenticación integrada y no quiero dar el nombre de usuario/contraseña en el código porque podría no saberlo. Pero aún probé el siguiente código sin suerte.

System.Uri uri = new Uri(myUrl); 
byte[] authData = System.Text.UnicodeEncoding.UTF8.GetBytes("user: passwd"); 
string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + "\r\n"; 
myBrowser.Navigate(uri, "", null, authHeader); 

¿Alguna idea de cómo configurar el encabezado con otros detalles como useragent también?

Respuesta

4

Si desea incluir el agente de usuario en la cabecera, probablemente debería hacer algo como esto:

string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + 
     "\r\n" + "User-Agent: MyUserAgent\r\n"; 

Sólo recuerde que cada cabecera se debe terminar con un par de avance de línea de retorno de carro.

+0

Eso fue solo una corazonada. ¿Puedo generar 401 porque no tengo especificado el agente de usuario? ¿Cuáles son las cosas que son obligatorias en un encabezado http? – NLV

+0

@NLV: No estoy seguro de lo que se requiere en su caso. ¿Dices que la navegación desde IE funciona? Compruebe los encabezados en la solicitud hecha desde IE. –

+0

Probé el mismo código en una aplicación de formularios de Windows. Incluso si configuro explícitamente el encabezado de autenticación para que esté vacío y solicite la página, puedo cargar la página en el control. Y la aplicación web no está configurada para acceso anónimo. ¿Puedes explicar eso? Empiezo a pensar que independientemente de los encabezados de autenticación válidos que establezco para la solicitud, no responde. – NLV

Cuestiones relacionadas