2009-03-10 6 views
10

पर एनटीएलएम चुनौती कैसे करें Iphone अनुप्रयोग में कुछ वेब सेवाओं तक पहुंचने का प्रयास कर रहा हूं।आईफोन

यदि मैं GET .asmx पृष्ठ पर, मैं प्रमाणित करता हूं और WSDL को अपेक्षित रूप से प्राप्त करता हूं।

हालांकि, अगर मैं .asmx पृष्ठ पर POST, SOAPAction, सामग्री प्रकार, सामग्री-लंबाई की स्थापना, और HTTPBody, मैं सिर्फ didReceiveAuthenticationChallenge संदेश प्राप्त कर।

इसके अतिरिक्त, मैं एकीकृत विंडोज प्रमाणीकरण (आईडब्ल्यूए) का उपयोग करके आईआईएस को पोस्ट करने की कोशिश कर रहा हूं, जिसका अर्थ है कि मैं एनटीएलएम चुनौती पर बातचीत करने की कोशिश कर रहा हूं।

उत्तर

11

दुर्भाग्य से मुझे अपना जवाब मिला। NSURLConnection NTLM प्रमाणीकरण नहीं कर सकता है। CFNetwork स्टैक का उपयोग करके एनटीएलएम प्रमाणीकरण कैसे करें इसके बारे में एक पोस्ट यहां दी गई है।

HTTP Post via the CFNetwork stack

मिले कुछ है कि उकताहट सब करने से भी बेहतर: कोई है जो पहले से ही यह किया गया है!
ASIHTTPRequest

अद्यतन: वहाँ एक workaround for iOS 4 कि NTLM प्रमाणीकरण के लिए फिर से

+0

धन्यवाद! ASIHTTPRequest वही था जो मैं खोज रहा था। – Dana

2

मुझे लगता है कि आपकी वेब-सेवा की तरह मुझे अलग-अलग पढ़ा जाता है (प्राप्त) और लिखना (पोस्ट) अनुमतियां होती हैं। मुझे नहीं लगता कि यह आईफोन या एनएसआरएल कनेक्शन के साथ एक मुद्दा है।

+0

वेब ग्राहक ठीक काम करता है और अनुमति देता है अगर मैं एक नेट आवेदन, वह ठीक के रूप में अच्छी तरह से काम पैदा करते हैं। लेकिन मुझे लगता है कि मैं सिर्फ मामले में अनुमतियों की जांच कर सकता हूं। –

+0

जीईटी और पोस्ट के लिए अनुमतियां समान हैं। –

+0

क्या आप निश्चित हैं? POST फ़ंक्शन कुछ करने के लिए प्रमाणीकरण की आवश्यकता हो सकती है जैसे कि फ़ाइल में लिखना। .NET क्लाइंट आपके लिए प्रमाणीकरण की संभावना है। क्या आपने HTTP डीबगर में कॉल करने का प्रयास किया है? http://ditchnet.org/httpclient/ – Lounges