मेरे पास AngularJS
क्लाइंट एप्लिकेशन है जो नवीनतम Identity 2
का उपयोग कर WebAPI 2
एप्लिकेशन के विरुद्ध प्रमाणीकृत करने के लिए javascript
(कॉफ़ीस्क्रिप्ट या टाइपस्क्रिप्ट नहीं) Oauth2 का उपयोग करता है। मेरे आवेदन में सभी सॉफ्टवेयर बहुत ताजा है और this example
पर आधारित है। मेरे क्लाइंट ब्राउज़र लक्ष्य IE9 और ऊपर हैं।AngularJS, WebAPI 2 और Oauth 2 का उपयोग करते समय मैं अपने क्लाइंट ऐप पर प्राधिकरण जानकारी वापस कैसे भेज सकता हूं?
ध्यान दें कि मैंने ऊपर दिए गए उदाहरण से कुछ मामूली परिवर्तन किए हैं, जिसमें मैं ट्रांसफॉर्म का उपयोग कर सर्वर पर भेजे गए सभी डेटा urlencode नहीं करता हूं। इसके बजाय मैं सिर्फ नीचे प्रमाणित विधि में urlencode:
user.authenticate = function (userName, password, rememberMe, successCallback, errorCallback) {
var config = {
method: 'POST',
url: '/Token',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: 'grant_type=password&username=' + encodeURIComponent(userName) + '&password=' + encodeURIComponent(password),
};
मैं VS2013 अद्यतन 2 के साथ और सर्वर पर विकासशील हूँ, मैं, नवीनतम इकाई की रूपरेखा और एसक्यूएल सर्वर का उपयोग सी # 2012
मेरे मुवक्किल के लिए लॉग इन करने के लिए WebAPI को एक/टोकन विधि कॉल करता है और उपयोगकर्ता आईडी और पासवर्ड पास करता है। वेबएपीआई तब क्लाइंट को टोकन के साथ प्रतिक्रिया देता है जिसे मैं स्टोर करता हूं। वेबएपीआई लिए प्रत्येक अनुरोध के साथ टोकन वापस भेज दिया जाता है और प्रमाणीकृत:
$http.defaults.headers.common.Authorization = 'Bearer ' + user.data.bearerToken;
यह अब तक बहुत अच्छी तरह से काम करता है लेकिन के रूप में यह खड़ा आवेदन उपयोगकर्ताओं उन्हें सौंपे गए विभिन्न भूमिकाओं है कि दोनों के बीच अंतर बताने में असमर्थ है।
कुछ वेबएपीआई विधियों को केवल उन उपयोगकर्ताओं द्वारा निष्पादित किया जा सकता है जिनके पास एक निश्चित भूमिका है। मैं अपने फ्रंट एंड एंगुलरजेएस एप्लिकेशन के मेनू को एडजस्ट करना चाहता हूं ताकि केवल अगर उपयोगकर्ता की भूमिका हो तो उचित लिंक दिखाई देंगे। मुझे एहसास है कि यह उपयोगकर्ता को एचटीएमएल की जांच करने और पोस्ट करने से नहीं रोकता है, लेकिन मुझे इस बारे में कोई चिंता नहीं है क्योंकि मेरे पास अभी भी उपयोगकर्ताओं की क्षमता को सीमित करने के लिए विधि सजावट होगी, जो कि कार्य करने की भूमिका में नहीं है।
कोई मुझे कैसे मैं इस का उपयोग कर सिर्फ उत्पादों की कि मैं सवाल प्लस जावास्क्रिप्ट वेब टोकन में उल्लेख अगर वे मदद तारीख तक समाधान लाने बनाने के ऊपर उल्लेख किया सूट कर सकते हैं का एक उदाहरण दे सकते हैं। जो मैं समझता हूं उससे भूमिकाएं दावों से संभाली जाती हैं लेकिन मुझे समझ में नहीं आता कि इन्हें कैसे जोड़ना है और उन्हें टोकन के साथ क्लाइंट को वापस भेजना है। मैंने इंटरनेट पर बहुत सारे शोध किए हैं लेकिन मुझे कोई अच्छा उदाहरण नहीं मिल रहा है क्योंकि मुझे लगता है कि इनमें से अधिकतर बहुत नए हैं और बहुत से लोगों को यह पता लगाने का मौका नहीं मिला है कि एसपीए इन नवीनतम सॉफ्टवेयर का उपयोग कैसे कर सकता है अवयव।
जब इस सवाल कृपया ध्यान दें है कि मैं एक जवाब है कि समुदाय बता सकता है कि सर्वर या एक जवाब है कि कैसे महत्वपूर्ण यह सर्वर पर भूमिका की जाँच करता प्रदान करना है के बारे में बताते हैं पर भूमिकाओं स्थापित करने के लिए के लिए नहीं देख रहा हूँ का जवाब दे । मुझे लगता है कि लगभग हर किसी को इसके बारे में पता है। मैं वास्तव में क्या सोचता हूं इसका उपयोग नमूना कोड और स्पष्टीकरण के साथ कुछ बहुत ही विस्तृत तकनीकी सुझाव है। उत्तर केंद्रित रखने के लिए यह संभवतः सभी के लिए मदद की जाएगी यदि उत्तर जो इस आवश्यकता को पूरा नहीं करते हैं, उन्हें सुझाए गए उत्तरों के रूप में पोस्ट नहीं किया जाता है।
अग्रिम धन्यवाद।
क्या आप इस "भूमिकाओं को दावों से नियंत्रित कर सकते हैं" पर विस्तार कर सकते हैं? दावे भूमिकाओं का एक विकल्प है, लेकिन यदि आप अभी भी भूमिकाओं का उपयोग करना चाहते हैं, तो प्रकार [दावे टाइप्स.रोल] (http://msdn.microsoft.com/en-us/library/system.security.claims.claimtypes) के साथ दावा जोड़ें .role (v = vs.110) .aspx) – LostInComputer
मुझे लगता है कि इससे मदद मिल सकती है: http://msdn.microsoft.com/en-us/library/hh545448.aspx –