0

Я использую веб-службу, которая использует базовую аутентификацию HTTP с помощью NSURLConnection. В моем NSURLConnectionDelegate я внедрил –[NSURLConnectionDelegate connection:canAuthenticateAgainstProtectionSpace:], –[NSURLConnectionDelegate connection:didCancelAuthenticationChallenge:] и –[NSURLConnectionDelegate connection:didReceiveAuthenticationChallenge:], но никто из них не вызван.NSURLConnection не вызывает методы аутентификации NSURLConnectionDelegate после HTTP 401

Я попытался осуществить –[NSURLConnectionDelegate connectionShouldUseCredentialStorage:], чтобы возвратить как YES, так и NO, но это не повлияло.

I also ensured that my NSURLCredentialStorage was empty.

Наконец, вместо реализации –[NSURLConnectionDelegate connection:canAuthenticateAgainstProtectionSpace:], –[NSURLConnectionDelegate connection:didCancelAuthenticationChallenge:] и –[NSURLConnectionDelegate connection:didReceiveAuthenticationChallenge:], я реализовал –[NSURLConnectionDelegate connection:willSendRequestForAuthenticationChallenge:], но он не был вызван либо.

Что я могу сделать, чтобы сделать NSURLConnection call-ответами NSURLConnectionDelegate?

ответ

1

Мой HTTP-сервер не возвращает заголовок WWW-Authenticate.

ответ

моего сервера:

HTTP/1.1 401 Unauthorized 
Date: Wed, 19 Jun 2013 14:43:30 GMT 
Server: Apache-Coyote/1.1 
Expires: Wed, 19 Jun 2013 14:43:30 GMT 
Vary: Accept-Encoding,User-Agent 
Cache-Control: no-store, no-cache, must-revalidate, private, max-age=0 
Content-Length: 0 
Content-Type: text/plain 

Другой ответ сервера с WWW-Authenticate заголовком:

HTTP/1.1 401 Authorization Required 
Date: Wed, 19 Jun 2013 14:44:47 GMT 
Server: Apache/2.2.17 (CentOS) 
WWW-Authenticate: Basic realm="[LDAP/PROD] Active Directory" 
Content-Length: 0 
Connection: close 
Content-Type: text/plain 

Похоже NSURLConnection требует WWW-Authenticate заголовка в своем ответе на это вызвать обратные вызовы аутентификации NSURLConnectionDelegate «s ,

У меня filed a radar об этом. Пожалуйста, дублируйте его.

По-видимому, мне придется вручную установить заголовок Authorization с NSURLConnection will not allow you to proactively authenticate with NSURLCredential.

Смежные вопросы