2012-11-25 13 views
5

क्या AFNetworking NTLM प्रमाणीकरण का समर्थन करता है?क्या AFNetworking NTLM प्रमाणीकरण का समर्थन करता है?

मुझे पता है कि ASIHTTPRequest यह कर सकता है, मैं AFNetworking में माइग्रेट करने का प्रयास कर रहा हूं, लेकिन मुझे यह सुनिश्चित करना होगा कि यह इससे निपटने में सक्षम होगा।

मैंने वास्तव में इसके लिए इंटरनेट खोजा, लेकिन मैं यह सटीक उत्तर नहीं ढूंढ पाया।

सभी को धन्यवाद।

+0

[AFNetworking NTLM प्रमाणीकरण?] के संभावित डुप्लिकेट? [Http://stackoverflow.com/questions/12483465/afnetworking-ntlm- प्रमाणीकरण) –

उत्तर

6

हां, AFNetworking सामान्य रूप से प्रमाणीकरण चुनौतियों के लिए ब्लॉक-आधारित प्रतिक्रिया प्रदान करके एनटीएलएम प्रमाणीकरण (या मूल रूप से कोई प्रमाणीकरण विधि) का समर्थन करता है।

यहां एक कोड उदाहरण है (operation मानना ​​AFHTTPRequestOperation, AFJSONRequestOperation आदि) है। ऑपरेशन शुरू करने से पहले प्रमाणीकरण चुनौती ब्लॉक इस तरह से सेट करें:

[operation setAuthenticationChallengeBlock: 
^(NSURLConnection* connection, NSURLAuthenticationChallenge* challenge) 
{ 
    if([[challenge protectionSpace] authenticationMethod] == NSURLAuthenticationMethodNTLM) 
    { 
     if([challenge previousFailureCount] > 0) 
     { 
     // Avoid too many failed authentication attempts which could lock out the user 
     [[challenge sender] cancelAuthenticationChallenge:challenge]; 
     } 
     else 
     { 
     [[challenge sender] useCredential:[NSURLCredential credentialWithUser:@"username" password:@"password" persistence:NSURLCredentialPersistenceForSession] forAuthenticationChallenge:challenge]; 
     } 
    } 
    else 
    { 
     // Authenticate in other ways than NTLM if desired or cancel the auth like this: 
     [[challenge sender] cancelAuthenticationChallenge:challenge]; 
    } 
}]; 

सामान्य रूप से ऑपरेशन को प्रारंभ या एनक्यू करें और यह चाल चलाना चाहिए।

यह मूल रूप से विधि है वेन हार्टमैन describes in his blog AFNetworking पर लागू होता है।

+0

धन्यवाद सर, मुझे नहीं पता था कि मैं एक ब्लॉक को पार करने के लिए पास कर सकता हूं प्रमाणीकरण! मैं जल्द ही इसे आजमाने की कोशिश कर रहा हूं, लेकिन मेरे प्रोजेक्ट में मैंने एएसआईएचटीटीपीक्वेट पर एक छोटा सा lib बना दिया जो ब्लॉक सिंटैक्स का उपयोग करता है, यही वह है जिसे मैं ढूंढ रहा था =) –

+0

आपके दृष्टिकोण का उपयोग शुरू किया, बहुत अच्छा काम करता है! धन्यवाद सर =) –

+0

हम्म, सेट प्रमाणीकरणChallengeBlock एक कनेक्शन ऑपरेशन की एक संपत्ति प्रतीत होता है, अनुरोध अनुरोध नहीं। – fizgig

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