2012-09-19 31 views
58

Erişmek için Temel Kimlik Doğrulaması ile Fiddler'ı kullan Sorunum olmadan çalışan bir WebAPI var. Yerel olarak test ettim ve sunucuma dağıtdım ve Temel Kimlik Doğrulamayı kullanmak için bu hizmeti IIS'de yapılandırdım. Hizmetime göz atabiliyorum ve beklediğim Kimlik Doğrulama sorununu alıyorum ve her şey çok hızlı çalışıyor! Şimdi bunu test etmek için Fiddler'ı kullanmak istiyorum ve belirli bir url için bir POST oluşturdum ve 401 (Yetkisiz) hata aldım. Bu yüzden İstek Başlığımda bir base64 dizesi eklemeye karar verdim ve şimdi 500 hata alıyorum.Reaktif WebAPI

Bilmek istediğim, İstek Başlığımın doğru görünüyor mu? Belli ki, Kimlik Doğrulama tehdidi için kullanıcı adı: parola içeren Ana Bilgisayarım ve base64 dizgimi gizlice ele alacağım.

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

Temel Kimlik Doğrulama biçimi için şu biçimi buldum: http://en.wikipedia.org/wiki/Basic_access_authentication – brianhevans

+0

Burada bir base64 kodlayıcısı buldum: http://www.motobit.com/util /base64-decoder-encoder.asp – brianhevans

+2

Yetkilendirmeyi Listenin hemen yukarısındaki listeye taşıdım ve çalışır. Viki'de önerilen formatı takip ettim ve bence her şey çalışıyor. :-) – brianhevans

cevap

127

Fiddler'ın sizin için Base64'ü yapan bir aracı vardır. Sadece dizginizi yaratın: kullanıcı adı: parola ve sonra Araçlar -> TextWizard'a gidin ve kullanıcı adı parolasını bir araya getirin ve ToBase64'ü seçin. Bunu kopyalayın ve Yetkilendirme başlığınıza yapıştırın ve gitmek için iyi olmalısınız.

+0

Teşekkürler, bunu bir dahaki sefere deneyeceğim! – brianhevans

+0

Ancak json yapısı verileri göndermek için farklıyken kodlanmış dizeyi json verilerimle birlikte nasıl gönderebilirim. –

15

AlexGad haklı. ToBase64 kodlama oluşturulduktan sonra isteği yazarken başlığı altında, aşağıdaki satırı ekleyin:

Authorization: Basic [encoded_value]

Şimdi çalışmalı, isteği yürütmek! :)

5

Bunun daha eski bir yazı olduğunu biliyorum, ancak ilk bakışta bunu nasıl yaptığımı incelediğimde bu yazıya rastladım ve bunun cevabın olduğunu biliyordum ama yine de kimlik bilgilerinin olması gerektiği gibi şeyler bilmiyordum. koma ayrıştırılmış vb. Yani, bu durumda birisinin bir JSON POST için bir araya getirdiğim Fiddler için notlarım olmasına yardımcı olabilir. Fiddler

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

yeni versiyonları oluşturmak ve otomatik şöyle Besteci URL alanına kullanıcı adı ve şifreyi belirtmek eğer gerekli Authorization başlık katacak (ı v4.6.20172.31233 test):

gerçekleştirilmesi üzerine
https://SomeUser:[email protected] 

, bu adresten dışına şeritler ve bu gibi bir HTTP başlığına döner:

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M= 
0

Fiddler 4'te, tüm yapmam gereken Kurallar menüsündeki Otomatik Kimlik Doğrulama seçeneğini kontrol etmekti.