2012-09-19 28 views
58

Tengo una WebAPI que funciona sin problemas. He probado localmente e implementado en mi servidor y configuré este servicio en IIS para usar la Autenticación básica. ¡Puedo buscar mi servicio y recibir el desafío de Autenticación que espero y todo funciona a la perfección! Ahora quiero usar Fiddler para probar esto y he construido una POST para una url específica y recibí un error 401 (no autorizado). Así que decidí agregar una cadena base64 en mi Encabezado de solicitud y ahora recibo un error de 500.Usar Fiddler con Autenticación básica para acceder a RESTful WebAPI

Lo que me gustaría saber es si mi encabezado de solicitud es correcto. Obviamente voy a ofuscar mi cadena de Host y base64 que contiene el nombre de usuario de formato: contraseña para el desafío de Autenticación.

User-Agent: Fiddler 
Host: xxx.xxx.xxx.xxx:xxxx 
Content-Length: 185 
Content-Type: text/json 
Authorization: Basic jskadjfhlksadjhdflkjhiu9813ryiu34 
+0

Aquí es donde encontré el formato básico de Autenticación formato base64: http://en.wikipedia.org/wiki/Basic_access_authentication – brianhevans

+0

Aquí es donde encontré un codificador base64: http://www.motobit.com/util /base64-decoder-encoder.asp – brianhevans

+2

Moví la Autorización arriba en la lista justo debajo del Host y funciona. Seguí el formato sugerido en la wiki y creo que tenemos todo funcionando. :-) – brianhevans

Respuesta

127

Fiddler tiene una herramienta que hace el Base64 para usted. Simplemente cree su cadena: nombre de usuario: contraseña y luego vaya a Herramientas -> Asistente de texto e ingrese el combo de contraseña de nombre de usuario y elija ToBase64. Copie y pegue eso en su encabezado de autorización y debería estar listo.

+0

¡Gracias, intentaré eso la próxima vez! – brianhevans

+0

Pero, ¿cómo puedo enviar esa cadena codificada junto con mis datos json mientras que la estructura json es diferente para enviar los datos? –

15

AlexGad tiene razón. Una vez creada la codificación ToBase64, bajo la cabecera mientras se compone la solicitud, agregue la siguiente línea:

Authorization: Basic [encoded_value]

Ahora cabo la investigación, que debería funcionar! :)

5

Sé que esta es una publicación anterior, pero la primera vez que busqué cómo hacerlo me encontré con esta publicación y sabía que era la respuesta, pero todavía no sabía cosas como las credenciales debían ser coma separado, etc. Por lo tanto, en caso de que esto pueda ayudar a alguien aquí, están mis notas para Fiddler que preparo para un JSON POST.

First you need to Base64 encode your "username:password" 
    • Go to Tools | Text Wizard | To Base64 in dropdown 

Post a message in the Composer tab 
    • Change the type to POST in the dropdown. 
    • Put in the URL 
    • Add the following to the top header section. 
     ○ Authorization: Basic ReplaceWithYourEncodedCredtials= 
     ○ Content-Type: application/json; charset=utf-8 
    • Add some JSON content to the body 
     ○ [{"Address1":null,"Address2":null,"BirthDate":"1967-10-06T00:00:00","City":null,"CompanyHireDate":"2011-06-03T00:00:00","EmailAddress":"[email protected]","EmployeeNumber":"112233","FirstName":"JOHN","LastName":"DOE","PhoneNumber":null,"State":null,"UserName":"JDoe","ZipCode":null}] 
2

Las nuevas versiones de Fiddler (I probados en v4.6.20172.31233) va a crear y añadir la cabecera necesaria para que Authorization automáticamente si se especifica el nombre de usuario y contraseña en el campo URL Compositor así:

https://SomeUser:[email protected] 

al ejecutar, esto lo priva de la URL y se convierte en una cabecera HTTP como:

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M= 
0

Descubrí que en Fiddler 4, todo lo que tenía que hacer era verificar la opción Autenticar automáticamente que está en el menú Reglas.

Cuestiones relacionadas