2009-12-10 10 views
23

मैं वेब क्लाइंट का उपयोग कर अपनी साइट पर किसी पृष्ठ पर कॉल कर रहा हूं। मैं वेब पेज का परिणाम पीडीएफ में डालने का प्रयास कर रहा हूं, इसलिए मैं प्रस्तुत पृष्ठ के स्ट्रिंग का प्रतिनिधित्व करने की कोशिश कर रहा हूं। समस्या यह है कि अनुरोध प्रमाणीकृत नहीं है, इसलिए मुझे एक लॉगिन स्क्रीन मिलती है। मैंने UseDefaultCredentials प्रॉपर्टी को सत्य में भेज दिया है लेकिन मुझे अभी भी वही परिणाम मिल रहा है। नीचे मेरे कोड का एक हिस्सा है:मैं वेब क्लाइंट अनुरोध को प्रमाणित कैसे करूं?

WebClient webClient = new WebClient(); 
webClient.Encoding = Encoding.UTF8; 

webClient.UseDefaultCredentials = true; 
return Encoding.UTF8.GetString(webClient.UploadValues(link, "POST",form)); 

उत्तर

4

आप किस प्रकार का प्रमाणीकरण उपयोग कर रहे हैं? यदि यह प्रपत्र प्रमाणीकरण है, तो सबसे अच्छा, आपको .SPXAUTH कुकी खोजनी होगी और इसे WebClient अनुरोध में पास करना होगा।

सबसे खराब, यह काम नहीं करेगा।

+0

प्रमाणीकरण – smartdirt

+1

बनाता है फिर आपको व्यवहार करने वाले ब्राउज़र की तरह व्यवहार करने के लिए 'वेब क्लाइंट' की आवश्यकता होती है। आपको कुकी भेजने की जरूरत है। –

+0

उम, सुनिश्चित नहीं है कि मैं यह कैसे करूंगा। कोई सुझाव? धन्यवाद। – smartdirt

66

आपको वेब क्लाइंट ऑब्जेक्ट को प्रमाण-पत्र देने की आवश्यकता है। इस तरह कुछ ...

WebClient client = new WebClient(); 
client.UseDefaultCredentials = true; 
client.Credentials = new NetworkCredential("username", "password"); 
+2

यह काम किया। ध्यान दें कि मुझे UseDefaultCredentials को सत्य पर सेट करने की आवश्यकता नहीं है। – NightShovel

+0

आपने वेबसाइट पता –

+0

पास किया है हाँ, यह वही है जो मुझे चाहिए! धन्यवाद! – SubqueryCrunch

2
Public Function getWeb(ByRef sURL As String) As String 
    Dim myWebClient As New System.Net.WebClient() 

    Try 
     Dim myCredentialCache As New System.Net.CredentialCache() 
     Dim myURI As New Uri(sURL) 
     myCredentialCache.Add(myURI, "ntlm", System.Net.CredentialCache.DefaultNetworkCredentials) 
     myWebClient.Encoding = System.Text.Encoding.UTF8 
     myWebClient.Credentials = myCredentialCache 
     Return myWebClient.DownloadString(myURI) 
    Catch ex As Exception 
     Return "Exception " & ex.ToString() 
    End Try 
End Function 
+5

यह सी # नहीं है। –

+0

ग्रेट, धन्यवाद। इसका वीबी.Net, आप इसे यहां सी # में परिवर्तित कर सकते हैं: http://converter.telerik.com/ – haroonxml

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

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