ठीक है, मेरे पास यह त्रुटि थी, और लंबे समय (वर्षों) तक मेरे रूबी ऐप पर रूबी के साथ बातचीत करते समय इसके साथ लड़े।
मेरे पास स्वीकृत जवाब में वर्णित के रूप में डिफ़ॉल्ट क्रेडेंशियल थे, लेकिन फिर भी त्रुटि मिली, और क्रेडेंशियल्स की आपूर्ति करने के लिए एक didRceiveChallenge प्रतिक्रिया पर भरोसा कर रहा है - सौभाग्य से जो चारों ओर काम के रूप में काम करता है।
परंतु! मैंने अभी हल ढूंढा है!
मैं एक ऐसे कूबड़ पर काम कर रहा था, जो संरक्षित क्षेत्र के रूबी सर्वर पर रूबी से प्राधिकरण की चुनौती से मेल नहीं खाता था - और मैंने इस क्षेत्र में देखा, जो केवल ऐसा प्रतीत हो रहा था जो अपरिभाषित रह गया था।
मैंने सर्वर रिस्पांस हेडर को प्रिंट करके शुरू किया था, और यद्यपि मैं इनकी जांच करने में सक्षम था, लेकिन उन्होंने डब्ल्यूडब्ल्यूडब्ल्यू-प्राधिकरण क्षेत्र को शामिल नहीं किया था जिसमें वास्तविक क्षेत्र शामिल होगा।
मैंने सोचा कि यह शायद इसलिए था क्योंकि मेरा रेल एप्लिकेशन दायरे को निर्दिष्ट नहीं कर रहा था, इसलिए मैंने रेल की चीजों को देखना शुरू कर दिया।
मैंने पाया कि मैं कॉल के दायरे को निर्दिष्ट कर सकता हूं,
authenticate_or_request_with_http_basic
... जो मैं HTTP बेसिक प्रमाणीकरण के लिए उपयोग कर रहा हूं।
मैं पहले से ही एक क्षेत्र निर्दिष्ट नहीं कर रहा था, इसलिए एक जोड़ा,
authenticate_or_request_with_http_basic("My Rails App")
मैंने इसके बाद प्रोटेक्शनस्पेस में संबंधित स्ट्रिंग जोड़ा,
NSURLProtectionSpace *protectionSpace =
[[NSURLProtectionSpace alloc] initWithHost:@"myrailsapp.com"
port:443
protocol:NSURLProtectionSpaceHTTPS
realm:@"My Rails App"
authenticationMethod:NSURLAuthenticationMethodHTTPBasic];
देखा! यह काम किया है, और मैं अब नहीं मिलता है,
CredStore - performQuery - Error copying matching creds. Error=-25300
रेल एप्लिकेशन में दायरे को निर्दिष्ट करने के बाद भी, मैं अभी भी इसे HTTP हेडर में पारित नहीं देखता, मुझे नहीं पता कि क्यों, लेकिन कम से कम यह काम करता है।