2016-08-15 8 views
19

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

प्रोजेक्ट चलाने के बाद, यह होम पेज को सही तरीके से लाता है लेकिन जब मैं/api/values ​​या/api/values ​​/ 5 पर नेविगेट करता हूं, तो यह मुझे xml संदेश से नीचे देता है।

<Error> 
    <Message>Authorization has been denied for this request.</Message> 
</Error> 

क्या कोई मदद कर सकता है? मैं वेब एपीआई के लिए नया हूँ। कृपया ध्यान दें कि मैं प्राधिकृत विशेषता को हटाना नहीं चाहता हूं। मैं केवल प्राधिकरण के बाद संसाधन का उपयोग करना चाहता हूं। तो मैं गलत क्या देख रहा हूं।

+7

मान नियंत्रक में [AllowAnonymous] सेट करें। –

+0

@ एटीपी 9 यह सही है। – Arnstein

+0

जब ओपी कहता है कि एथ सक्षम है तो एनन को सक्षम क्यों करें? – StingyJack

उत्तर

45

वैल्यू कंट्रोलर में एक विशेषता Authorize है यदि आप इसे हटाते हैं, तो यह होम पेज के रूप में काम करेगा।

Authorize विशेषता सिर्फ अज्ञात उपयोगकर्ताओं को ValuesController तक पहुंचने से रोकती है।

इस विशेषता के साथ काम करने के लिए, आपको पहले उपयोगकर्ता को पंजीकरण करने की आवश्यकता है, और फिर उपयोगकर्ता के टोकन प्राप्त करने के लिए लॉगिन करें, फिर आप अपने स्वयं को अधिकृत करने और पहुंच प्राप्त करने के लिए टोकन का उपयोग कर सकते हैं।

यह पेज Individual-accounts-in-web-api में सब है कि आप क्या जरूरत है

+2

का उपयोग करने के लिए धन्यवाद सूचना। यही वह है जिसे मैं ढूंढ रहा था। – atp9

+0

धन्यवाद वास्तव में अच्छी सामग्री –

12

यह तब होता है, क्योंकि आप अपने ValuesController

[Authorize] 
public class ValuesController : ApiController 

पर एक Authorize विशेषता बस [Authorize] निकालें और पुन:

संपादित

कोशिश अपने संपादित के अनुसार: आप एक नया उपयोगकर्ता बनाने चाहिए और @Marcus एच द्वारा उल्लिखित [AllowAnonymous] का लॉगिन या उपयोग करें। पहचान

के बारे में और पढ़ें
+0

मैं एपीआई अनधिकृत नहीं बनाना चाहता हूं। मैं इसे आने वाले अनुरोधों को प्रमाणित करना चाहता हूं। – atp9

+0

ठीक है, कोई समस्या नहीं है तो एक नया उपयोगकर्ता बनाएं और लॉगिन करें। – Marusyk

+0

नहीं, सवाल यह है कि यह मुझे संसाधन तक पहुंचने की अनुमति नहीं दे रहा है। अगर मैं वैध उपयोगकर्ता नहीं हूं, तो इसे कैसे ठीक करें? – atp9

0

मैं इस सवाल का जवाब यहाँ मिल गया समझाया गया है।

https://stackoverflow.com/a/29405794/8107314

और यह मेरी त्रुटि मेरी त्रुटि को ठीक करने

मैं सिर्फ एक ही समस्या में आए और समाधान पाया बहुत उपयोगी था:

आप OAuth टोकन जेनरेटर और OAuth रजिस्टर करने की आवश्यकता WebAPI पंजीकृत होने से पहले टोकन उपभोक्ता चीजें पंजीकृत हैं।

अगर आप इसे पाइपलाइन के रूप में सोचते हैं तो इसका अर्थ समझ में आता है, जहां नियंत्रक द्वारा किसी भी अनुरोध को संभालने से पहले प्रमाणीकरण/प्राधिकरण आना चाहिए।

टी एल; डॉ: बदले

appBuilder.UseWebApi(config); 

this.ConfigureOAuthTokenGenerator(appBuilder); 
this.ConfigureOAuthConsumer(appBuilder); 

करने के लिए

this.ConfigureOAuthTokenGenerator(appBuilder); 
this.ConfigureOAuthConsumer(appBuilder); 

appBuilder.UseWebApi(config); 

तक cguedel शीर्ष 43% समग्र वरिष्ठ सॉफ्टवेयर इंजीनियर

सॉफ्टवेयर डेवलपर सब बातों में रुचि।नेट, विशेष रूप से WPF SOreadytohelp

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

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