Я делаю HTTP-запросы с URL-адресами, такими как "http://user:password@example.com/stuff.xml", и я замечаю, что учетные данные пользователя кэшируются и используются. Если я пытаюсь войти в систему сначала с недействительными учетными данными, это не работает. Но если Я вхожу с действительным именем пользователя / паролем, затем пытаюсь войти снова с неверным именем пользователя / паролем, он использует только что использованные действительные учетные данные, а не то, что в URL.
Я искал NSURLCredentialStorage , чтобы возможно удалить все сохраненное, но мне нужно указать NSURLProtectionSpace , и я не уверен, что это такое.
Обновление :
Я создал didReceiveAuthenticationChallenge
метод делегата, который устанавливает имя пользователя и пароль в NSURLCredential
с постоянством, установленным на NSURLCredentialPersistenceNone
, но кажется, что метод делегата даже не вызывается во второй раз.
Обновление 2 :
Кажется, что независимо от того, что я делаю, аутентификация где-то сохраняется. Домен, против которого он аутентифицируется, не сохраняется в sharedCredentialStorage
.
Когда я устанавливаю canAuthenticateAgainstProtectionSpace
как false, он не использует didReceiveAuthenticationChallenge
, но учетные данные аутентификации (которые являются частью URL, а не ответом на вызов) все же, похоже, кэшируются!
Эта, казалось бы, прямолинейная проблема не оказывается прямой и чрезвычайно расстраивает. Может ли все это быть ошибкой?