web-dev-qa-db-fra.com

Utiliser Fiddler avec l'authentification de base pour accéder à l'API Web RESTful

J'ai un WebAPI qui fonctionne sans problème. J'ai testé localement et déployé sur mon serveur et configuré ce service dans IIS pour utiliser l'authentification de base. Je peux accéder à mon service et je reçois le défi d'authentification auquel je m'attendais et tout fonctionne à merveille! Maintenant, je veux utiliser Fiddler pour tester cela et j'ai construit un POST vers une URL spécifique et j'ai eu une erreur 401 (non autorisée). Alors j'ai décidé d'ajouter une chaîne base64 dans mon en-tête de demande et je reçois maintenant une erreur 500.

Ce que j'aimerais savoir, est-ce que mon en-tête de demande a l'air correct? Je vais évidemment masquer mon hôte et la chaîne base64 qui contient le format nom d'utilisateur: mot de passe pour le défi d'authentification.

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

Fiddler a un outil qui fait la Base64 pour vous. Créez simplement votre chaîne: nom d'utilisateur: mot de passe, puis allez dans Outils -> TextWizard et entrez la liste déroulante des noms d'utilisateur et mot de passe, puis choisissez ToBase64. Copiez-le et collez-le dans votre en-tête d'autorisation et vous devriez être prêt à partir.

139
AlexGad

AlexGad a raison. Une fois le codage ToBase64 créé, sous la tête lors de la composition de la demande, ajoutez la ligne suivante:

Authorization: Basic [encoded_value]

Maintenant, exécutez la demande, ça devrait marcher! :)

22
Sunil Chakravarthy

Les versions les plus récentes de Fiddler (que j’ai testée dans la v4.6.20172.31233) créeront et ajouteront l’en-tête nécessaire Authorizationautomatiquement si vous spécifiez le nom d’utilisateur et le mot de passe dans Composer Le champ de l'URL ressemble à ceci:

https://SomeUser:SomePass@sitename

Lors de l'exécution, cela le supprime de l'URL et se transforme en un en-tête HTTP comme:

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M=
10
Nick Jones

Je sais que c’est un article ancien, mais la première fois que j’examinais comment faire cela, j’ai trouvé ce message et je savais que c’était la réponse, mais je ne savais toujours pas que les informations d’identité devaient être séparées, etc. Ainsi, Juste au cas où cela pourrait aider quelqu'un, voici mes notes pour Fiddler que j'ai préparées pour 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}]
7
Caverman