.net - WCF WebHttp मिश्रित प्रमाणीकरण(बेसिक और बेनामी)




authentication http-authentication (3)

मैंने इस पर अतीत में शोध किया है और पाया है कि जब तक आप 2 अलग-अलग समापन बिंदु (जो कि आप क्या चाहते हैं) नहीं बनाते हैं, तब तक कॉन्फ़िगरेशन के माध्यम से संभव नहीं है। यह केवल WCF द्वारा बॉक्स के बाहर समर्थित नहीं है।

हालांकि, डब्ल्यूसीएफ बेहद अनुकूलन योग्य है और आप ऐसा कस्टम चैनल लिखकर ऐसा कर सकते हैं जो आप चाहते हैं कि क्या करेंगे। मैं सुझाव है कि आप REST शतरंज स्रोत कोड पर एक नज़र डालें। इसे आपको शुरू करना चाहिए

यह सब WebHttp बाध्यकारी से संबंधित है, जो कस्टम सेवा होस्ट (IIS इस समय एक विकल्प नहीं है) में होस्ट किया गया है।

मैंने एक कस्टम यूज़रनेम पासवर्डवर्डलेटर और एक कस्टम IAuthorizationPolicy लागू किया है। जब मैं मूलभूत प्रमाणीकरण का उपयोग करने के लिए समापन बिंदु की बाइंडिंग को कॉन्फ़िगर करता हूं, तो सब कुछ उसी तरह काम करता है जैसा मैं चाहता हूं (कस्टम प्रिंसिपल, कस्टम भूमिकाएं, आदि।)

मैं गुमनाम HTTP पहुंच के लिए भी क्षमता जोड़ना चाहूंगा, और मेरे कस्टम कार्यान्वयन में बेनामी उपयोगकर्ता को कुछ मूलभूत भूमिकाओं में डाल दिया है, आदि। (यदि कोई प्रमाणीकरण हेडर नहीं भेजा गया है)।

अब क्या होता है कि मेरे कस्टम कोड के किसी भी हिट होने से पहले अनाम उपयोगकर्ता को 401 दिया जाता है। अगर मैं HTTP मूल प्रमाणीकरण की आवश्यकता को बंद कर देता हूं, तो प्रमाणिकता हेडर को पूरी तरह से अनदेखा कर दिया जाता है

मैं यह कैसे दोनों तरीके (दो अलग-अलग समापन बिंदुओं के बिना) करने के लिए प्रमाणन हेडर को कॉन्फ़िगर, या इंजेक्ट कर सकता हूं?


तुम्हारा सबसे अच्छा शर्त है कि किसी भूमिकाओं प्रदाता के माध्यम से एक डिफ़ॉल्ट भूमिकाएं लागू करें और अनाम उपयोगकर्ताओं को स्वचालित रूप से उस भूमिका में शामिल होने दें। फिर या तो प्रोग्रामेटिक रूप से, या पॉलिसी इंजेक्शन (पहल उन्मुख) नीति के माध्यम से, सेट करें ताकि विशिष्ट अनामिका के माध्यम से विशिष्ट अनन्य पहुंच की अनुमति हो।

यह कॉन्फ़िगरेशन के माध्यम से स्थापित करने के लिए, यदि यह संभव है, तो यह कठिन होगा और ऐसा "हैमी" होगा।


मुझे ऐसा नहीं लगता ... मैं सिर्फ लिख रहा था कि आपको अंत बिंदु को अलग करने के लिए बनाने की जरूरत है, जब मैंने आपका सवाल फिर से पढ़ने का फैसला किया और आपके प्रश्न के आखिरी बयान पर गौर किया। तो जवाब नहीं होगा (मुझे पता है कि)







http-authentication