Аутентификация пользователя для автономного приложения
-
25-10-2019 - |
Вопрос
У меня есть простой мобильный сайт 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, спросите пользователя о своих учетных данных. В том случае, если у них первоначально был подключение к Интернету, приложение, без сомнения, сохранит некоторый знак их надлежащей аутентификации и может без вопросов синхронизировать. В противном случае спросите пароль сейчас.