मैं एक WCF सेवा ओवरराइड मान्य() System.IdentityModel.Selectors.UserNamePasswordValidator वर्ग की विधि के माध्यम से कस्टम उपयोगकर्ता नाम मान्यता उपयोग करने के लिए कॉन्फ़िगर नहीं है।WCF उपयोगकर्ता नाम प्रमाणीकरण और गलती ठेके
अनुबंध के सभी तरीकों वापस होने के रूप में एक कस्टम सोप गलती निर्दिष्ट करने के लिए FaultContractAttribute के साथ सजाया गया है।
FaultException < टी > फेंकते समय, जहां टी FaultContractAttribute में निर्दिष्ट प्रकार है, सब कुछ अपेक्षित व्यवहार करता है और मुझे प्रतिक्रिया एक्सएमएल में कस्टम गलती मिलती है।
हालांकि, अगर मैं कोशिश करते हैं और ओवरराइड मान्य() उपयोगकर्ता नाम प्रमाणीकरण वर्ग की विधि में FaultException < टी > फेंक, मैं एक सामान्य सोप गलती निम्नलिखित कारण के साथ मिलती है:
"इस गलती के निर्माता था एक कारण निर्दिष्ट नहीं है। "
हालांकि, अगर मैं कोड बदलने में के रूप में सामान्य सोप गलती फेंकने के लिए:
throw new FaultException("Authentication failed.");
मैं कम से कम हो जाएगा "प्रमाणीकरण विफल।" कारण तत्व में।
मेरे प्रश्न हैं:
- क्यों FaultException < टी > अपवाद ही नहीं इलाज कर रहे हैं अगर वे मान्य() के रूप में वे सेवा कार्यान्वयन के भीतर हैं में फेंक दिया रहे हैं?
- यह मान्य() विधि FaultContractAttribute अनुबंध तरीकों पर निर्दिष्ट के अनुरूप में फेंक दिया अपवाद करना संभव है?
किसी भी मदद की बहुत सराहना। मेरा खुद का अनुमान यह है कि संदेश अनुबंध के किसी भी तरीके से जुड़ा हुआ है, और इसलिए, FaultContractAttribute से जुड़ा हुआ नहीं है, लेकिन यह पुष्टि करने वाला कोई भी लेख और कामकाज देने वाला कोई भी लेख बहुत उपयोगी होगा।
ताली
इस प्रश्न पोस्ट करने के लिए धन्यवाद। कोई समाधान? मैं अभी भी मार्च 2013 में एक जवाब की तलाश में हूं। –