Verwenden Sie Fiddler mit Standardauthentifizierung, um auf RESTful WebAPI zuzugreifen


70

Ich habe eine WebAPI, die ohne Probleme funktioniert. Ich habe lokal getestet und auf meinem Server bereitgestellt und diesen Dienst in IIS für die Verwendung der Standardauthentifizierung konfiguriert. Ich kann zu meinem Dienst navigieren und erhalte die erwartete Authentifizierungsaufforderung, und alles funktioniert reibungslos! Jetzt möchte ich Fiddler verwenden, um dies zu testen. Ich habe einen POST für eine bestimmte URL erstellt und einen 401-Fehler (nicht autorisiert) erhalten. Daher habe ich beschlossen, eine Base64-Zeichenfolge in meinen Anforderungsheader einzufügen, und jetzt wird ein 500-Fehler angezeigt.

Ich möchte wissen, ob mein Anforderungsheader korrekt aussieht. Ich werde offensichtlich meine Host- und Base64-Zeichenfolge verschleiern, die das Format Benutzername: Kennwort für die Authentifizierungsaufforderung enthält.

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

Hier fand ich das Format für die
Basisauthentifizierung

Hier habe ich einen base64-Encoder gefunden: motobit.com/util/base64-decoder-encoder.asp
brianhevans

2
Ich habe die Autorisierung in der Liste direkt unter den Host verschoben und es funktioniert. Ich habe das im Wiki vorgeschlagene Format befolgt und ich denke, wir haben alles zum Laufen. :-)
Brianhevans

Antworten:


139

Fiddler hat ein Tool, das Base64 für Sie erledigt. Erstellen Sie einfach Ihre Zeichenfolge: Benutzername: Passwort, gehen Sie zu Extras -> Textassistent, geben Sie die Kombination aus Benutzername und Passwort ein und wählen Sie ToBase64. Kopieren Sie das und fügen Sie es in Ihren Authorization-Header ein.


Danke, das werde ich beim nächsten Mal versuchen!
Brianhevans

1
Aber wie kann ich diese codierte Zeichenfolge zusammen mit meinen JSON-Daten senden, während sich die JSON-Struktur für das Senden der Daten unterscheidet?
Ashish-BeJovial

22

AlexGad hat recht. Fügen Sie nach dem Erstellen der ToBase64-Codierung unter der Kopfzeile beim Erstellen der Anforderung die folgende Zeile hinzu:

Authorization: Basic [encoded_value]

Führen Sie nun die Anfrage aus, es sollte funktionieren! :) :)


12

Neuere Versionen von Fiddler (ich habe in v4.6.20172.31233 getestet) erstellen und fügen automatisch den erforderlichen AuthorizationHeader für Sie hinzu , wenn Sie den Benutzernamen und das Kennwort im Feld Composer-URL wie folgt angeben:

https://SomeUser:SomePass@sitename

Bei der Ausführung wird die URL entfernt und in einen HTTP-Header umgewandelt:

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M=

Was ist, wenn mein Passwort @ sign enthält?
Tarun

8

Ich weiß, dass dies ein älterer Beitrag ist, aber als ich zum ersten Mal darüber nachdachte, wie das geht, bin ich auf diesen Beitrag gestoßen und wusste, dass dies die Antwort ist, aber ich wusste immer noch nicht, wie die Anmeldeinformationen durch Koma getrennt werden müssen usw. Also, Nur für den Fall, dass dies jemandem hier draußen helfen könnte, sind meine Notizen für Fiddler, die ich für einen JSON-POST zusammengestellt habe.

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":"myEmail@company.com","EmployeeNumber":"112233","FirstName":"JOHN","LastName":"DOE","PhoneNumber":null,"State":null,"UserName":"JDoe","ZipCode":null}]

0

Ich hoffe, das hilft jemandem, der ein Neuling wie ich ist.

Wenn Sie GET verwenden, funktioniert die Verwendung von [] um das Token nicht.

Folgendes hat nicht funktioniert: -

Authorization: Basic [MkgzczhaVnhZNG13d1FkTVJ2ZmZMQzFQQnhZRG5WdUVhbDNiVWs0ZldDdzo=]

Folgende funktionierten: -

Authorization: Basic MkgzczhaVnhZNG13d1FkTVJ2ZmZMQzFQQnhZRG5WdUVhbDNiVWs0ZldDdzo=

-1

Ich habe festgestellt, dass ich in Fiddler 4 nur die Option Automatisch authentifizieren aktivieren musste, die sich im Menü Regeln befindet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.