2011-01-19 3 views
29

मैं सी # में वेब क्लाइंट ऑब्जेक्ट का उपयोग करके कुछ डाउनलोड करना चाहता हूं, लेकिन डाउनलोड डोमेन को मुझे लॉग इन करने की आवश्यकता है। मैं लॉग इन कैसे कर सकता हूं और वेब क्लाइंट का उपयोग करके सत्र डेटा कैसे रख सकता हूं? मुझे पता है कि वेब क्लाइंट के साथ डेटा कैसे पोस्ट करें।मैं वेब क्लाइंट के साथ किसी साइट में कैसे लॉग इन करूं?

+1

सर्वर की किस तरह की प्रमाणीकरण तंत्र की आवश्यकता होती है? बेसिक, फॉर्म, विंडोज/एनटीएलएम? –

+2

lol मैं मान जोड़कर समस्या हल maunally फ़ायरफ़ॉक्स कुकीज़ से देख :) webClient.Headers.Add के माध्यम से ("कुकी", "PHPSESSID = xxxxxxx; mosesuser = xxxxxxx;"); – MonsterMMORPG

+0

कौन सा मूल्य? क्या आपका मतलब वास्तविक ऑथ कुकी है? याद रखें, वह मान शायद समाप्त हो जाएगा और बाद में पुन: उपयोग नहीं किया जा सकता है। –

उत्तर

47

समस्या आप कर रहे हैं आप प्रमाणित कर सकते हैं, लेकिन आप नहीं कर सकते प्रमाणीकरण कुकी यहाँ रखना है, तो WebClient की एक कुकी अवगत संस्करण है।

private class CookieAwareWebClient : WebClient 
{ 
    public CookieAwareWebClient() 
     : this(new CookieContainer()) 
    { } 
    public CookieAwareWebClient(CookieContainer c) 
    { 
     this.CookieContainer = c; 
    } 
    public CookieContainer CookieContainer { get; set; } 

    protected override WebRequest GetWebRequest(Uri address) 
    { 
     WebRequest request = base.GetWebRequest(address); 

     var castRequest = request as HttpWebRequest; 
     if (castRequest != null) 
     { 
      castRequest.CookieContainer = this.CookieContainer; 
     } 

     return request; 
    } 
} 

संपादित करें: लिंक आप मुझे दिया HTTP POST के साथ प्रपत्र प्रमाणीकरण का उपयोग करता है, मैं समय ही यह चलने के लिए नहीं है, लेकिन कम से कम यह आप गूगल के साथ एक प्रारंभ हो जाता है।

+1

मुझे यह मिला। लेकिन मुझे क्या करने की ज़रूरत है? क्या मुझे httpwebrequest के माध्यम से प्रमाणीकरण करना है या क्या? – MonsterMMORPG

+0

यह उस साइट पर निर्भर करता है जिस साइट पर आप उपयोग करने के लिए कनेक्ट कर रहे हैं। –

+1

काश इस पोस्ट वास्तविक प्रमाणीकरण प्रक्रिया पर ही एक उदाहरण भी शामिल होगा सत्यापन के लिए सुझाव दिए गए पर अन्य प्रतिक्रियाओं में से कुछ को देखें। – Shimmy

-1

Credentials संपत्ति का उपयोग कर पर एक नजर डालें। जैसे यदि मूल प्रमाणीकरण का उपयोग किया जाता है, तो आपको उचित उपयोगकर्ता नाम और पासवर्ड के साथ NetworkCredential के उदाहरण पर संपत्ति सेट करनी होगी।

sample शो कैसे अनुरोध के लिए उपयोगकर्ता प्रमाणिकता पर उपयोग करने के लिए वर्तमान में लॉग ओर इशारा किया।

+1

:(काम नहीं करता है – MonsterMMORPG

+0

शाबाशी, मैं देख रहा हूँ। सर्वर फार्म प्रमाणीकरण का उपयोग करता। यही कारण है कि आप कार्रवाई यूआरएल प्रवेश पृष्ठ html में निर्दिष्ट करने के लिए उपयोगकर्ता नाम और पासवर्ड पोस्टिंग की आवश्यकता है। तुम भी आदेश प्रमाणन प्राप्त करने के लिए एक कुकी कंटेनर का उपयोग करना चाहिए कुकी उस पोस्ट के जवाब के साथ आता है। –

+0

@MonsterMMORPG 'DoesNotWorkNullReferenceException' – C4u

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