2013-08-06 9 views
5

से HTTP शीर्षलेख जानकारी पुनर्प्राप्त कैसे करें मेरे पास निम्नलिखित सी # रीस्टफुल इंटरैस है।सी # रीस्टफुल सेवा विधि

[WebGet(UriTemplate = "requires-authorization", ResponseFormat = WebMessageFormat.Json)] 
    [OperationContract] 
    string MethodRequiringAuthorization(); 

कौन सा निम्नलिखित वर्ग

public string MethodRequiringAuthorization() 
    { 
     //var authorisazation = HTTP header authorization field 
     return "{Message" + ":" + "You-accessed-this-message-with-authorization" + "}"; 
    } 

मैं (टिप्पणी की लाइन में वर्णित है) http हेडर में मौजूद फ़ील्ड "प्राधिकरण" का मूल्य इस विधि में पारित करने के लिए चाहते हैं पूर्णांक कार्यान्वित किया जाता है। कोई भी विचार मैं यह मान

+0

शायद 'this.Request' का उपयोग कर? –

+1

ps: आपको यह उपयोगी http://forums.asp.net/p/1193533/2056217.aspx –

+0

ढूंढ सकता है जो वह अपनी विधि घोषणा के ऊपर उपयोग किए गए गुणों को ध्यान में रखते हुए यह मानना ​​सुरक्षित है कि वह एएसपी.नेट वेब के बजाय डब्ल्यूसीएफ रेस्ट का उपयोग करता है एपीआई। इसका मतलब है 'अनुरोध' संपत्ति मौजूद नहीं है। – user1908061

उत्तर

5

मैं मैं HttpContext.Current संपत्ति का उपयोग कर के लिए क्या देख रहा था प्राप्त करने में सक्षम था। Request.Headers संपत्ति का उपयोग करते हुए मैं हेडर सूचना का एक नाम मूल्य सूची प्राप्त करने में सक्षम था

public string MethodRequiringAuthorization() 
    { 
     HttpContext httpContext = HttpContext.Current; 
     NameValueCollection headerList = httpContext.Request.Headers; 
     var authorizationField = headerList.Get("Authorization");    
     return "{Message" + ":" + "You-accessed-this-message-with-authorization" + "}"; 
    } 
2

कैसे प्राप्त कर सकते हैं आप की कोशिश की

Request.Headers["Authorization"]

+0

देखने के लिए चीयर्स मैंने कोशिश की कि किसी अन्य पोस्ट पर देखने से, लेकिन मेरे पास उस विकल्प (अनुरोध.हेडर) का दायरा नहीं है। – beaumondo

0
वीबी नेट, जो किसी कारण से मैं पिछले कुछ के लिए फिर से उपयोग कर रहे हैं में @beaumondo की

त्वरित अनुवाद महीने।

Private Function GetAuthorizationFromHeader() As String 
    Dim currentContext As HttpContext = HttpContext.Current 
    Dim headerList As NameValueCollection = currentContext.Request.Headers 
    Dim authorizationField As String = headerList.Get("Authorization") 
    Return authorizationField '"{Message" + ":" + "You-accessed-this-message-with-authorization" + "}"message-with-authorization" + "}" 
End Function 

बहुत बहुत शुक्रिया, मैं नहीं जानता कि क्यों मैं के बारे में HttpContext.Current.Request.Headers आसान से पहले नहीं मिल सका।

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