Можете ли вы удалить файлы cookie, используемые пользовательским агентом программы установки (отличным от Safari), на мобильном устройстве iOS? - PullRequest
1 голос
/ 16 февраля 2012

Мы внедряем приложения iOS по беспроводной сети (OTA) на нашем предприятии для сотрудников, и мы контролируем, кто может получить доступ к сайту загрузки через SiteMinder, который аутентифицирует пользователя и авторизует его на основе членства в группе AD.Этот процесс аутентификации создает cookie на устройстве, указывающее, что пользователь аутентифицирован (и, вероятно, он тоже авторизован), поэтому он не продолжает получать запросы снова и снова для каждого запроса.

Проблема в том, чтопользователь может загрузить и установить приложение один раз и после этого никогда не сможет установить приложение снова, потому что они попадают в цикл запроса учетных данных.Этот цикл вызван тем, что срок действия файла cookie аутентификации Siteminder истек и пользовательский агент не удаляет и не обновляет его.

Из того, что я прочитал, это связано с тем, что URL-адрес установки OTA, которая начинается с "itms-Services: //" и использует на устройстве другой пользовательский агент, чем mobile-Safari, и не отвечает на вызов удаления cookie с сайта и не удаляет cookie самостоятельно.Это также означает, что удаление файлов cookie, очистка кэша и данных веб-сайта в Safari не решает проблему - Safari не владеет cookie.

Удаление приложения (если оно все еще установлено) не решает проблемулибо не происходит перезагрузка устройства (я еще не пытался стереть устройство, и все равно не могу просить наших пользователей сделать это).

Итак, есть ли способ сообщить агенту пользователя, чтоitms-services использует для удаления свои cookie-файлы на устройстве или есть другие способы решения этой проблемы при развертывании OTA для приложений iOS?

Использование Apple AppStore в этом случае не является жизнеспособным решением.
Изменение параметров в SiteMinder, помимо управления именами файлов cookie, в результате чего создается новый файл cookie, также недопустимо, поскольку это отрицательно скажется на других пользователях единого входа, поддерживаемых этим доменом SiteMinder.

Ответы [ 2 ]

3 голосов
/ 17 ноября 2012

Недавно мы столкнулись с подобной проблемой.Мы смогли это исправить, добавив «Allow HEAD» к защищенному ресурсу в siteminder.Администраторы Siteminder могут включать «GET and POST» только как разрешенные операции.

1 голос
/ 16 февраля 2012

Вы можете удалить куки следующим образом:

 for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {

    if([[cookie domain] rangeOfString:@"mydomain.com"].location!=NSNotFound) {

        [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
    }
}
...