Аутентификация пользователя для автономного приложения

StackOverflow https://stackoverflow.com/questions/8312370

Вопрос

У меня есть простой мобильный сайт JQUERY, созданный с использованием ASP.NET MVC 2, и использует аутентификацию основных форм для предоставления доступа на сайт.

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

Когда доступно мобильное соединение, приложение работает очень хорошо, но из -за отсутствия сигнала нам необходимо исследовать возможность предоставления ядра приложения доступным в автономном режиме. Я изучал возможность взять приложение в автономном режиме с использованием HTML 5, но не могу найти никакой информации об аутентификации пользователей.

Приложение очень простое и, по сути, имеет два разных экрана списка, которые сверли в детали работы.

1. Login    
    1.1 Job List    
        2. Job Details

    1.2 Team Diary    
        2. Job Details

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

Контент не является конфиденциальными данными, но, очевидно, клиент не хочет, чтобы кто -то мог просматривать дневник рабочего дня на том, что является публичным веб -сайтом.

Каков предпочтительный способ аутентификации пользователей на сайте, который потенциально может быть использован в автономном режиме?

Это было полезно?

Решение

Я переоцениваю сайт MVC3 для автономного использования, и я сталкиваюсь с некоторыми из тех же проблем.

Одна вещь, за которую вам нужно следить за тем, что браузер пытается немедленно загрузить все файлы, перечисленные в cache.manifest. Это вызывает проблему, если пользователь еще не вошел в систему, и у вас есть классическое перенаправление на страницу входа в систему, если пользователь не аутентифицирован. Вам нужно будет открыть «статический» представление об этих страницах для публичного доступа и позволить вашему JavaScript определить, входит ли пользователь в систему или нет, прежде чем попытаться получить/отправить обновления. Это позволит загружать статические неконтентные страницы браузеру и позволит вашему JavaScript управлять контентом по мере необходимости.

В моем приложении используется метод, заимствованный из Джим Лемер для обнаружения онлайн -подключения.

Как только мы обнаружим, что мы подключены, я создал небольшое действие в контроллере моей учетной записи, что хорошо возвращает, является ли пользователь аутентифицирован или нет:

    public JsonResult IsAuthenticated()
    {
        return Json(new { Request.IsAuthenticated }, JsonRequestBehavior.AllowGet);
    }

Надеюсь, это поможет!

Другие советы

Ах Я вижу, что ты сейчас спрашиваешь. Я бы предложил следующим образом.

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

Как только этот пользователь восстановит подключение к Интернету, прежде чем синхронизировать Local с Remote, спросите пользователя о своих учетных данных. В том случае, если у них первоначально был подключение к Интернету, приложение, без сомнения, сохранит некоторый знак их надлежащей аутентификации и может без вопросов синхронизировать. В противном случае спросите пароль сейчас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top