Как обрабатывать постоянный вход в систему из приложения MVVM? - PullRequest
0 голосов
/ 04 марта 2012

Я пишу приложение, которое отображает форму входа перед загрузкой, и отправляет запрос POST в веб-приложение, которое я ранее разработал.

Я могу отослать данные для входа и получить 200сообщение и может получать данные в рамках этого запроса.Однако теперь я хочу сохранить этот логин после закрытия приложения, чтобы позволить пользователю не входить в систему каждый раз, когда он открывает приложение, или в этом случае, когда компьютер перезагружается.(Он будет работать при загрузке, но для этого нужно поддерживать приложение, а не службу WCF)

Я использую HTTPWebRequest в C # для обработки запросов POST к серверу, и я могу создавать файлы cookie на стороне сервера.Как я могу сообщить своему приложению об этих файлах cookie и сохранить их безопасным способом, чтобы обеспечить постоянный вход в систему для всего моего приложения?Я рассмотрел несколько способов хранения файлов cookie в C #, например эти две ссылки:

http://www.c -sharpcorner.com / uploadfile / mahesh / manage-cookies-in-a-wpf-application /

http://msdn.microsoft.com/en-us/library/dd920298(v=vs.95).aspx

Однако код в первой ссылке дал мне странный файл cookie:

"CSCUser2 = test-username; android_developer_C: _width= 243px; __utma = 1.1718972007.1316996246.1316996246.1316996246.1; __utmz = 1.1316996246.1.1.utmcsr = (прямой) | utmccn = (прямой) | utmcmd = (нет); android_developer_reference_lastpage = / and-dk-sds / ss: / ds-ss: /: -d: ss: dS & ss: /: -d: ss: dS / ss: ds / ss: ss: ds / sk: ss: ds / sk: /: -d/reference/android/speech/RecognizerIntent.html"

Так что я не уверен, что этот подход лучше?Любые указатели будут оценены.

1 Ответ

1 голос
/ 04 марта 2012

Я думаю, CookieContainer (то есть ссылка MSDN) - это правильный способ установки и получения файлов cookie. (Кстати: обратите внимание, что ваш вопрос не имеет ничего общего с паттерном wpf или mvvm. Это обычный c # /.net/httpwebreuqest topic).

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

Я рекомендую использовать DPAPI для сохранения секретов на компьютере пользователя.,Google для c # и DPAPI, чтобы увидеть, как это сделать в .net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...