2012-09-19 20 views
58

उपयोग करने के लिए मैं एक वेबएपीआई कि इस मुद्दे के बिना काम करता है। मैंने स्थानीय रूप से परीक्षण किया है और मेरे सर्वर पर तैनात किया है और आईआईएस में मूल प्रमाणीकरण का उपयोग करने के लिए इस सेवा को कॉन्फ़िगर किया है। मैं अपनी सेवा ब्राउज़ करने में सक्षम हूं और मुझे प्रमाणीकरण चुनौती मिलती है जो मुझे उम्मीद है और सभी तैराकी से काम करते हैं! अब मैं इसका परीक्षण करने के लिए फिडलर का उपयोग करना चाहता हूं और मैंने एक विशिष्ट यूआरएल में एक पोस्ट बनाया है और मुझे 401 (अनधिकृत) त्रुटि मिली है। इसलिए मैंने अपने अनुरोध शीर्षलेख में बेस 64 स्ट्रिंग जोड़ने का निर्णय लिया और अब मुझे 500 त्रुटि मिल रही है।बुनियादी प्रमाणीकरण के साथ फ़िडलर उपयोग RESTful वेबएपीआई

क्या मैं जानना चाहता है, मेरे अनुरोध हेडर सही दिखता है चाहते हैं? मैं स्पष्ट रूप से अपने होस्ट और बेस 64 स्ट्रिंग को खराब करने जा रहा हूं जिसमें प्रमाणीकरण चुनौती के लिए प्रारूप उपयोगकर्ता नाम: पासवर्ड शामिल है।

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

यह वह जगह है जहां मुझे मूल प्रमाणीकरण बेस 64 प्रारूप के लिए प्रारूप मिला: http://en.wikipedia.org/wiki/Basic_access_authentication – brianhevans

+0

यह वह जगह है जहां मुझे बेस 64 एन्कोडर मिला: http://www.motobit.com/util /base64-decoder-encoder.asp – brianhevans

+2

मैं प्राधिकरण सिर्फ होस्ट नीचे करने के लिए सूची में चले गए और यह काम करता है। मैंने विकी में सुझाए गए प्रारूप का पालन किया और मुझे लगता है कि हमारे पास सब कुछ काम कर रहा है। :-) – brianhevans

उत्तर

127

फिडलर का एक उपकरण है जो आपके लिए बेस 64 करता है। बस अपनी स्ट्रिंग बनाएं: उपयोगकर्ता नाम: पासवर्ड और फिर टूल्स -> टेक्स्ट विज़ार्ड पर जाएं और उपयोगकर्ता नाम पासवर्ड कॉम्बो दर्ज करें और ToBase64 चुनें। इसे अपने प्राधिकरण शीर्षलेख में कॉपी और पेस्ट करें और आपको जाने के लिए अच्छा होना चाहिए।

+0

धन्यवाद, मैं अगली बार कोशिश करूंगा! – brianhevans

+0

लेकिन मैं अपने जेसन डेटा के साथ उस एन्कोडेड स्ट्रिंग को कैसे भेज सकता हूं जबकि डेटा भेजने के लिए जेसन संरचना अलग है। –

15

AlexGad सही है। एक बार जब ToBase64 एन्कोडिंग बनाया जाता है, शीर्षक के अंतर्गत, जबकि अनुरोध को लिखते समय निम्नलिखित पंक्ति जोड़ें:

Authorization: Basic [encoded_value]

अब अनुरोध को निष्पादित, यह काम करना चाहिए! :)

5

मैं जानता हूँ कि यह एक पुराने पोस्ट है, लेकिन जब मैं पहली बार ऐसा करने के तरीके देख रहा था मैं इस पोस्ट में आए और पता था कि यह जवाब था लेकिन मैं अभी भी बातें नहीं पता था कि साख की तरह होने की जरूरत थी कोमा अलग आदि। तो, अगर यह किसी को यहां मदद कर सकता है तो फिडलर के लिए मेरे नोट्स एक JSON पोस्ट के लिए एक साथ रखे गए हैं। 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

नए संस्करणों (मैं v4.6.20172.31233 में परीक्षण) बना सकते हैं और आप स्वचालित रूप से अगर आप यूज़रनेम और पासवर्ड संगीतकार URL फ़ील्ड में तो जैसे निर्दिष्ट के लिए आवश्यक Authorization शीर्षक जोड़ देगा:

https://SomeUser:[email protected] 

को क्रियान्वित करने पर, इस URL से बाहर स्ट्रिप्स और की तरह एक HTTP शीर्ष लेख में बदल जाता है:

Authorization: Basic U29tZVVzZXI6U29tZVBhc3M= 
0

मैंने पाया कि फिडलर 4 में, मुझे बस इतना करना था कि नियम मेनू पर स्वचालित रूप से प्रमाणीकरण विकल्प की जांच करें।