5

के अंदर टोकन प्रमाणीकरण के साथ "एपीकंट्रोलर" को कैसे जोड़ा जाए, मुझे पता है कि यह प्रश्न कुछ डाउनवॉट प्राप्त कर सकता है, लेकिन मैं Google पर तीन दिनों तक खोज रहा हूं, वास्तव में उपयोग करने योग्य परिणाम नहीं।एएसपी नेट कोर आरसी 1 एमवीसी

मैंने व्यक्तिगत उपयोगकर्ता खाता प्रमाणीकरण/प्रमाणीकरण के साथ विजुअल स्टूडियो में एक डिफ़ॉल्ट एएसपी.NET कोर 1.0 आरसी 1 प्रोजेक्ट बनाया है। सब कुछ आसान और सरल है, क्योंकि परियोजना Microsoft.AspNet.Authentication.Cookies का उपयोग करके मचान की जाती है, और वीएस 2015 सभी भारी भारोत्तोलन करता है।

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

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

एमवीसी-केवल या वेबएपीआई-केवल दृष्टिकोणों के बहुत से ट्यूटोरियल हैं, लेकिन क्या आप मुझे बता सकते हैं कि मैं उन्हें एक साथ कैसे मिला सकता हूं?

क्या एमडब्ल्यूटी और वेबएपीआई सिस्टम-व्यापी के साथ जेडब्ल्यूटी का उपयोग करने का कोई तरीका है?

अग्रिम धन्यवाद।

+0

बस FYI: MVC और वेबएपीआई MVC 6 में मिला दिया गया 'नियंत्रक' दोनों 'एमवीसी' और 'एपीआई' नियंत्रकों के लिए बेस क्लास के रूप में कार्य करता है, उदाहरण के लिए अब 'एपीकंट्रोलर' नहीं है। –

+0

हाय @ हेंकमोल्लेमा मुझे पता है ... इस कारण से मैंने उद्धरण के बीच "एपीकंट्रोलर" रखा है। मुझे पता है कि नियंत्रक एक ही हैं। वैसे भी, टिप्पणी के लिए धन्यवाद। –

+0

हाय @ सीज़र। क्या आपको इसका कभी पता चला? मेरे पास एक ही परिदृश्य और सवाल है। धन्यवाद –

उत्तर

1

Limiting identity by scheme यह लिंक आपके प्रश्न का उत्तर हो सकता है।

एकल पृष्ठ अनुप्रयोग के रूप में कुछ परिदृश्यों, यह कई प्रमाणीकरण तरीकों, कुकी प्रमाणीकरण लॉग करने के लिए और जावास्क्रिप्ट अनुरोध के लिए वाहक प्रमाणीकरण के साथ अंत तक के लिए संभव है में।

मुझे लगता है, आप MVC के लिए नीचे दिए गए कोड का उपयोग कर सकते हैं और जावास्क्रिप्ट कॉल (जाहिर है, आप कुकी और वाहक middlewares सक्षम करना होगा):

[Authorize(AuthenticationSchemes = "Cookie,Bearer")] 
public class YourController : Controller 
+0

उत्तर देने के लिए धन्यवाद! मुझे डर है कि यह एएसपी.नेट कोर 1 में काम नहीं करता है, क्योंकि केवल 'ActiveAuthenticationSchemes' विशेषता है, और यह कन्स्ट्रक्टर से बाहर है। अब, पैरामीटर के रूप में स्वीकार करने वाली एकमात्र चीज एक स्ट्रिंग है जिसमें नीति का नाम होता है: 'public AuthorizeAttribute (string policy);'। क्या आप मुझे बता सकते हैं कि मुझे "वेबएपीआई-केवल" नीति कैसे बनाना चाहिए? –

+0

मैं कोड का परीक्षण नहीं कर सका, लेकिन एक समाधान हो सकता है: 'विकल्प। अतिरिक्त नीति ("नीति नाम", नीति => { नीति। आवश्यकताएं। जोड़ें (नई इंफ्रास्ट्रक्चर। न्यूनतमतम आवश्यकता (21)); नीति। AddAuthenticationSchemes (" बेयरर "); });' –

संबंधित मुद्दे