Я пишу Asp. net приложение MVC 2, которое использует проверку подлинности с помощью форм, и в настоящее время у меня возникла проблема с нашим приложением для iPhone в отношении проверки подлинности / входа в систему через Интернет. Мы разработали простое приложение для iPhone, в котором используется элемент управления UIWebView. На этом этапе все, что делает приложение, - это переходит на наш сайт Asp.Net. Все просто, правда? Проблема в том, что пользователь не может пройти через страницу входа. Шаги воспроизведения:
Но затем пользователь перенаправляется НАЗАД на экран входа в систему!
Я проделал обширную отладку и знаю одно:
Файл cookie отправляется на клиент, а клиент хранит файл cookie. Проверено в отладчике iPhone, а также с помощью Javsascript для отображения данных cookie на странице. Файл cookie отправляется обратно на сервер. Проверено в отладчике Visual Studio. Это правильный файл cookie (тот самый, который был установлен). Свойство User.Identity.IsAuthenticated по какой-то причине возвращает false, даже если файл cookie аутентификации содержится в объекте Request. Я убедился, что приложение iPhone настроено на прием файлов cookie, и они находятся на клиенте.
Вот забавный факт: он отлично работает, если вы откроете браузер Safari на iPhone и перейдете на наш сайт напрямую.
То же самое и на iPad - не выходит за пределы экрана входа. Эти репродукции на эмуляторах и на устройствах.
Этот же веб-сайт был протестирован с IE 7-8, Safari (для Windows), Blackberry, IEMobile 6.5, Phone 7, и он работает. Единственное обстоятельство, при котором он не работает, - это UIWebView в приложении для iPhone.