Winforms приложение как «автономный режим» веб-приложения - PullRequest
1 голос
/ 30 ноября 2010

Я видел подобные вопросы здесь, но ни один из них действительно не касался моей ситуации, вот настройка:

У меня есть приложение ASP.NET с проверкой подлинности с помощью форм (SqlMembershipProvider), где пользователи могут отправлять результаты аудита.

Я хочу создать легкое настольное приложение (назовем его MyApp ) (для использования в автономном режиме), чтобы пользователи могли отправлять результаты аудита, когда у них нет подключения к Интернету.

Вот МУЖЧИНЫ:

  1. Аутентификация пользователя по моему SqlMembershipProvider (анонимные пользователи не могут отправлять результаты аудита)
  2. Запросите учетные данные только ОДИН РАЗ (когда он / она откроет MyApp ) (у меня будет возможность сохранить маркер аутентификации, но в некоторых случаях MyApp будет установлен на ноутбуке, который используется несколькими пользователями, поэтому мне придется заставлять пользователей входить в систему каждый раз, когда MyApp открыто)
  3. НЕ хранить пароль в виде обычного текста (если пользователь не в сети, когда открыто MyApp , я хочу сохранить учетные данные для аутентификации пользователя при наличии соединения) - не уверен, возможно ли это

Как только я выясню 3 вещи, описанные выше, остальное легко.

Вот простой сценарий на случай, если вышеизложенное сбивает с толку:

  1. MyApp установлено на офисном ноутбуке, которое люди берут с собой, когда путешествуют
  2. 2 Пользователи путешествуют в удаленный район (без интернета) и проводят 2 отдельных аудита
  3. Пользователь 1 открывает MyApp, предоставляет своего пользователя / пароль (см. № 2 в MUST-HAVES), отправляет 3 результата (я сохраню результаты вместе с учетными данными пользователя, чтобы аутентифицировать пользователя и отправлять результаты всякий раз, когда соединение становится доступным) - см. № 1 и № 3 в MUST-HAVES
  4. Пользователь 2 открывает MyApp и выполняет ту же процедуру, что и Пользователь 1 на шаге 3.
  5. 2 дня спустя они возвращаются в офис, интернет доступен, результаты шагов 3 и 4 передаются в мое веб-приложение от имени соответствующих пользователей

Я посмотрел на среду Microsoft Sync, но это показалось мне излишним из-за того, что я делаю (и я не уверен, что оно может вместить мои ОБЯЗАТЕЛЬНО).

Я открыт для любых альтернативных подходов, если они будут учитывать мои ОБЯЗАТЕЛЬНЫЕ ВОЛНЫ.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 12 июня 2011

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

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

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

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

...