मेरे पास एमवीसी और वेब एपीआई नियंत्रकों और एस्पनेट पहचान दोनों का उपयोग करने वाली साइट है। मैंने वीएस2013 एसपीए टेम्पलेट का इस्तेमाल एमवीसी और वेब एपीआई नियंत्रकों दोनों के साथ शुरुआती बिंदु के रूप में किया था।हाइब्रिड एमवीसी/वेब एपीआई नियंत्रक साइट में AspNet पहचान
यहाँ मेरी परिदृश्य है:
MVC नियंत्रक का उपयोग में उपयोगकर्ता लॉग और एक प्रमाणन कुकी वापस हो जाता है।
अगला पृष्ठ प्रमाणीकृत एमवीसी नियंत्रक का उपयोग कर परोसा जाता है। वह पृष्ठ नॉकआउट का उपयोग करता है और एक वेब एपीआई नियंत्रक को AJAX पोस्ट कॉल करता है जिसे बटन क्लिक (सेव) से प्रमाणित किया जाता है। वेब एपीआई नियंत्रक को बेयरर - टोकन-- के साथ प्रमाणीकरण शीर्षलेख की आवश्यकता होती है।
मेरा प्रश्न यह है कि दूसरों को इस "दो" प्रमाणीकरण दृष्टिकोण कैसे संभालते हैं। मैंने एमवीसी नियंत्रक पर एक एंडपॉइंट बनाया जो प्रमाणीकृत है और वर्तमान प्रिंसिपल के आधार पर एक भालू टोकन देता है। मैं सफलतापूर्वक वेब एपीआई एंडपॉइंट पर पोस्ट करने के लिए उस टोकन का उपयोग कर सकता हूं।
जावास्क्रिप्ट तर्क जो मैं बना रहा हूं वह थोड़ा सा है ... भ्रमित। यह देखने के लिए जांच करता है कि सत्र टोकन में एक्सेस टोकन है या नहीं, अगर ऐसा है तो AJAX कॉल करें। यदि नहीं, तो टोकन एंडपॉइंट प्राप्त करें और फिर वेब एपी एंडपॉइंट को कॉल करें (अजाक्स वादे को पूरा करने के लिए कॉलबैक का एक गुच्छा का उपयोग करके, असफल, ect)।
दूसरों ने उस परिदृश्य को कैसे संभाला है जहां आपको ऑथ कुकी और बेयरर टोकन दोनों की आवश्यकता है ताकि प्रत्येक "एमवीसी" पृष्ठ प्रमाणीकृत हो और वेब एपी एंडपॉइंट कि पेज कॉल प्रमाणीकृत हो। यदि कुकी समाप्त होने से पहले भालू टोकन समाप्त हो जाता है तो आप क्या करते हैं।
मुझे बताएं कि क्या मैं स्पष्ट नहीं हूं या आपको अधिक जानकारी चाहिए।
संपादित
मैं, Using bearer tokens and cookie authentication together इस में आए यह अभी भी मेरे सवाल का जवाब नहीं है के रूप में मैं यह पहले से ही सेटअप है तो MVC कुकी प्रमाणन और वेब एपीआई स्वीकार करता है केवल वाहक टोकन स्वीकार करता है। मुझे लगता है कि यह एक समस्या होनी चाहिए जो पहले ही हल हो चुकी है, लेकिन शायद मैं गलत दृष्टिकोण ले रहा हूं।
आपने इस के आसपास कैसे प्राप्त किया? मैंने पिछले प्रोजेक्ट के लिए जो वर्णन किया है, वही किया है, लेकिन मैं अभी एक नया शुरू कर रहा हूं और मुझे यह जानने में दिलचस्पी थी कि इस के आसपास कोई "सर्वोत्तम प्रथाएं" हैं या नहीं, मैं इस समय –
के आसपास कार्यान्वित कर सकता हूं, मैं सभी अजाक्स करके इसे प्राप्त कर रहा हूं एमवीसी नियंत्रकों को कॉल करता है। दोनों कुकी आधारित टोकन और बेयरर टोकन को जोड़ना बहुत जटिल था। हमारी वेबसाइट केवल एमवीसी नियंत्रकों का इस्तेमाल करती है, हमारी बाहरी दुनिया वेब एपीआई का इस्तेमाल करती है। मैंने एक आम व्यापार परत में "पुन: प्रयोज्य तर्क" का अधिकांश हिस्सा रखा। मुझे अभी भी यह देखने में बहुत दिलचस्पी है कि दूसरों ने क्या दृष्टिकोण लिया है। – kheit