के साथ एएसपी.नेट एमवीसी 4 वेब एपीआई प्रमाणीकरण मेरे पास वेब एपीआई का उपयोग कर एएसपी.नेट एमवीसी 4 प्रोजेक्ट है। नियंत्रक पर मैंने कक्षा को [प्राधिकृत] विशेषता का उपयोग करके प्राधिकरण की आवश्यकता के लिए सेट किया है। प्रमाणीकरण के लिए मैं एएसपी.NET सदस्यता प्रदाता का उपयोग कर रहा हूं और अपना वेब। कॉनफिग "फॉर्म" प्रमाणीकरण का उपयोग करने के लिए सेट है। यहां वह जगह है जहां मैं फंस गया हूं:सदस्यता प्रदाता
सब कुछ ठीक काम कर रहा है जब तक कि मैं एपीआई का परीक्षण करने के साथ नहीं कर पाता हूं और मैं नियंत्रक को [प्राधिकृत] विशेषता के साथ सुरक्षित करना चाहता हूं ताकि मैं अपने उपयोगकर्ताओं के खिलाफ प्रमाणीकरण का परीक्षण शुरू कर सकूं सदस्यता प्रदाता इसलिए मैं फ़िडलर ऊपर आग और एक ही कॉल प्राधिकरण जोड़ने बनाने: तो जैसे मेरी सदस्यता प्रदाता से पासवर्ड:
प्रतिक्रिया मैं 401 अनधिकृत है और "प्रमाणीकरण" के तहत एक उपयोगकर्ता नाम के साथ साथ बुनियादी विशेषता मुझे "कोई डब्ल्यूडब्ल्यूडब्ल्यू-प्रमाणीकरण हैडर मौजूद नहीं है।" तब मुझे एहसास हुआ कि एपीआई एक SHA1 एन्कोडेड कुंजी की तलाश में है। तो मैं एक खोज से एक SHA1 जनरेटर ऊपर आग और अपना उपयोगकर्ता नाम के लिए एक हैश मिलती है: पासवर्ड और इतने की तरह मेरे अनुरोध हेडर अद्यतन:
यह या तो काम नहीं करता है और मैं एक ही परिणाम मिलता है। इसके अलावा मुझे सर्वर के साथ अपना उपयोगकर्ता नाम/पासवर्ड डीकोड करने के लिए उपयोग करने के लिए कुछ प्रकार की "साझा गुप्त कुंजी" की आवश्यकता है।
तो मेरे सवालों का:
- मैं कैसे सर्वर से इस कुंजी मिलता है (या इस मामले वर्चुअल IIS में वी.एस. 2012 बंद चल रहा है)।
- मैं एएसपी.NET सदस्यता प्रदाता से उपयोगकर्ता नाम/पासवर्ड का उपयोग करके फिडलर में प्रमाणीकृत कॉल करने के लिए इसका उपयोग कैसे करूं।
- एक ही कॉल (सी # डब्ल्यूपीएफ ऐप) बनाने के लिए मैं अपने क्लाइंट एप्लिकेशन में इसका उपयोग कैसे करूं।
- क्या यह सबसे अच्छा अभ्यास है जब मेरे HTTP कॉल पर एसएसएल के साथ संयुक्त हो? यदि नहीं है तो क्या है?
अग्रिम धन्यवाद!
धन्यवाद डैरिन, इस ठीक है कि मैं क्या जरूरत है! नियंत्रक विधि में – CodeAbundance
'User.Identity.Name' मेरे लिए खाली है, 'User.Identity.Is प्रमाणीकृत'' false' है। मैं डीबगर में देख सकता हूं कि 'थ्रेड। कंटेंट प्रिंसिपल' संदेश हैंडलर में सही उपयोगकर्ता नाम और भूमिकाओं के साथ प्रिंसिपल पर सेट है। इसके अलावा '[प्राधिकरण (भूमिकाएं = ...)] 'विशेषता का सम्मान किया जाता है: यदि मैं गलत भूमिकाओं वाले उपयोगकर्ता का उपयोग करता हूं तो मुझे अनधिकृत प्रतिक्रिया मिलती है और नियंत्रक विधि तक नहीं पहुंचती है। लेकिन 'User.Identity' में मेरे पास संदेश हैंडलर में सेट मान नहीं है। क्या आपको पता है कि क्या गलत हो सकता है? – Slauma
@ स्लुमा, मैं इसे पुन: उत्पन्न करने में असमर्थ हूं। हो सकता है कि आप समस्या का पुनरुत्पादन कैसे करें (चरण की एक खाली परियोजना से शुरू) चरणबद्ध तरीके से बताते हुए एक नया धागा शुरू कर सकते हैं। –