2013-07-15 7 views
5

मेरे पास .NET MVC WebApi ऐप है और विशेष रूप से Angularjs में सामने वाले अंत को लिखने का प्रयास कर रहा है। मैं जेसन के माध्यम से डेटा प्राप्त करने और इसे कुशल बनाने में सक्षम हूं लेकिन अब मुझे डेटा सुरक्षित करने की आवश्यकता है और सर्वर पर शीर्षलेख में बेस 64 प्रमाणीकरण जोड़ा है। जब मैं अपने कुछ .NET व्यू टेस्ट पेजों पर ब्राउज़ करता हूं, तो मुझे उपयुक्त लॉगिन बॉक्स मिलता है जो उपयोगकर्ता/पास के लिए पूछता है ताकि मैं जेसन प्राप्त कर सकूं।AngularJs -.net एमवीसी वेबएपी प्रमाणीकरण उदाहरण

मुझे नहीं पता कि कैसे करना है यह हैडर में यह जानकारी (उपयोगकर्ता/पास) पास करें कि कोणीय मेरे $ संसाधन में स्थापित हो रहा है। क्या कोई पूरा उदाहरण है जो मुझे बेहतर तरीके से दिखा सकता है कि यह कैसे करें? मुझे पता है कि इसमें कुकीज़ शामिल है और टोकन का उपयोग करके सर्वर वापस गुजरता है लेकिन मुझे नहीं पता कि टुकड़ों को एक साथ कैसे रखा जाए।

जब मैं इसे सब एक साथ प्राप्त करता हूं तो मुझे उम्मीद है कि सभी परतों (डीएएल, रीस्टफुल, कंसोल टेस्ट लेयर) के माध्यम से इसका पूरा कंकाल उदाहरण पोस्ट करें।

तो सवाल यह है कि - AngularJS $ संसाधनों का उपयोग करते समय आप क्लाइंट पर शीर्षलेख में प्रमाणीकरण जानकारी कैसे डालते हैं?

धन्यवाद

+0

में मदद करता है मुझे सच में यकीन नहीं है कि सवाल क्या है। आप कोणीय से हेडर कैसे सेट करते हैं? या ...? इसके अलावा, आपने क्या करने की कोशिश की है? –

+0

मैं ब्लेश से सहमत हूं, सवाल बहुत व्यापक है। लेकिन [प्रमाणीकरण] एनोटेशन का उपयोग करके आपको कहीं और मिलना चाहिए, साथ ही एंटीफोर्गेरी टोकन आउटपुट करना चाहिए। फिल हैक ने यहां इस बारे में लिखा http://haacked.com/archive/2011/10/10/preventing-csrf-with-ajax.aspx – marko

उत्तर

3

आप सर्वर साइड AngularJS पर शीर्ष लेख में एक कुकी डाल यदि यह कुकी हर समय भेज देंगे .. यू लेना देना नहीं है।

यदि आप हेडर में टोकन पास करना चाहते हैं तो कोणीय पक्ष पर cxookie में नहीं, बस यह करें: $httpProvider.defaults.headers.common['X-Auth'] = yourKey; अपने कॉन्फ़िगरेशन ब्लॉक में।

फिर यदि आप जानना चाहते हैं कि उपयोगकर्ता लॉग है या यदि उसे अधिकार मिलते हैं तो बस एक इंटरसेप्टर लागू करता है। यह एक साधारण कारखाना है जिसे आप हमेशा अपने कॉन्फ़िगर ब्लॉक में प्रतिक्रियाकर्ताओं को दबाएंगे।

इस कारखाने आप त्रुटि के मामले में प्रतिक्रिया की स्थिति कोड की जांच करेंगे सर्वर से और उनके कार्यान्वयन पर प्रत्येक प्रतिक्रिया सुनेगा:

401 - लॉगिन नहीं> 403 ->

अधिकृत नहीं

कारखाने के उदाहरण:

:

myModule.factory('myHttpInterceptor', function ($q) { 
    return function (promise) { 
     return promise.then(function (response) { 
      // do something on success    
      return response; 
     }, function (response) { 
      // do something on error 
      //check status 401 or 403 
      return $q.reject(response); 
     }); 
    }; 
}); 

फिर अपने चोर अंजीर ब्लॉक में इस तरह http responseIntercetors में अपना कारखाना डाल

बस ध्यान रखें इस समाधान AngularJS 1.1.4 (अभी भी अस्थिर) में पदावनत कर रहा है ...

कारखाने सिर्फ अधिक जानकारी के लिए इस पोस्ट को देखें थोड़ा अलग होना जरूरी: AngularJS Intercept all $http JSON responses

उम्मीद है कि यह

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