में Async और AuthorizeAttribute I System.Web.Http.AuthorizeAttribute (ओवरराइड ऑन प्राधिकरण विधि) से प्राप्त क्लास में मेरा प्रमाणीकरण तर्क है। मैं उस विधि से डीबी को कॉल करता हूं और मैं चाहता हूं कि वह कॉल अतुल्यकालिक हो (सौभाग्य से, नई ADO.NET async API इसे अनुमति देता है)।एसिंक एक्शन फ़िल्टर: एएसपी.NET वेब एपीआई
फिर मैं इस विशेषता को नियंत्रक को लागू करता हूं ताकि सभी कॉल प्रमाणीकरण फ़िल्टर के माध्यम से जा सकें। अब तक सब ठीक है।
लेकिन ऐसा करने से मैं निम्नलिखित समस्या में भाग लेता हूं। ढांचे (एएसपी.नेट वेब एपीआई) को मेरे इरादों के बारे में पता नहीं लगता है :) ऐसा लगता है कि यह मेरे फ़िल्टर के ऑनअधिकारीज़ियन विधियों को समाप्त करने से पहले नियंत्रक के क्रिया निष्पादन के साथ आता है (एसिंक कॉल से लौटाता है) .. इसलिए ढांचे से अपवाद एक ला "अनुरोध प्रसंस्करण सभी बकाया एसिंक परिचालन पूरा होने से पहले समाप्त हो गया .."
क्या इससे निपटने के लिए कोई भी आउट-ऑफ-द-बॉक्स तरीका है?
धन्यवाद!
पीएस मेरी आंत महसूस करने का कहना है कि मैं एक कस्टम एक्शन फ़िल्टर निर्माण के लिए हूं .. फिर मुझे ExecuteActionFilterAsync को ओवरराइड करने की आवश्यकता होगी और मेरे कार्यप्रणाली को फ्रेमवर्क से कोई मदद नहीं के साथ सभी कार्य-संबंधित सामानों को संभालने की आवश्यकता होगी ..)
सभी फ़िल्टर इंटरफेस, जो फ्रेमवर्क आपको देता है, एसिंक्रोनि-जागरूक हैं। मुझे लगता है कि आप उन लोगों के डिफ़ॉल्ट कार्यान्वयन के साथ काम कर रहे हैं जो सिंक्रोनस एपीआई एक्सपोज़ करते हैं। नीचे दिए गए उत्तर पर सुझाए गए अनुसार 'IAuthorizationFilter' के साथ काम करें। – tugberk