Автоматический процесс входа в приложение Windows Phone 7.1

В моем приложении для Windows Phone (приложение Silverlight) я хочу, чтобы пользователь автоматически входил в приложение после успешного входа в систему. То есть я не хочу, чтобы пользователь каждый раз входил в систему.

Я достиг этого с помощью концепции Изолированного файла хранилища. Т.е. сначала я создал каталог и создал изолированный файловый поток хранилища и сохранил учетные данные электронной почты и пароля в каком-то файле.
Когда я остановил отладку и снова запустил ее, мой потоковый ридер читает электронную почту. -password учетные данные из этого файла успешно.

Моя проблема заключается в том, что когда я закрываю свой эмулятор и снова открываю его, я не могу читать из этого файла (в частности, самого каталога не существует!). Я также хочу знать, что мое изолированное хранилище сохраняется в реальном Windows Phone?

Как я могу это исправить?


person Community    schedule 17.02.2012    source источник
comment
В качестве примечания: в целях безопасности используйте ProtectedData для шифрования учетных данных перед их записью в изолированное хранилище.   -  person Richard Szalay    schedule 17.02.2012


Ответы (5)


Это по дизайну.

Изолированное хранилище в эмуляторе не сохраняется после его закрытия.

Ссылка: Эмулятор Windows Phone Прокрутите вниз в "Особенности":

Important Note:
Isolated storage is available while the emulator is running. Data in isolated storage does not persist after the emulator closes. This includes files stored in a local database, as these files reside in isolated storage.

person Magnus Johansson    schedule 17.02.2012
comment
Хранилище Windows Phone7 постоянно?? - person ; 17.02.2012
comment
Да, на физическом устройстве это так. - person Magnus Johansson; 17.02.2012

Это один из недостатков использования эмулятора — это не проблема на реальном телефоне.

См. http://msdn.microsoft.com/en-us/library/ff402563%28v=vs.92%29.aspx

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

person Stuart    schedule 17.02.2012

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

Если вы хотите сохранить данные между запусками приложения, единственный вариант — не выключать эмулятор между запусками.

person ZombieSheep    schedule 17.02.2012
comment
Я хочу, чтобы хранилище моего Windows Phone было постоянным. - person ; 17.02.2012
comment
Хранение на реальном устройстве является постоянным. На эмуляторе этого нет, и вы ничего не можете с этим поделать. Возможный обходной путь — использовать инструмент IsoStorSpy для создания резервной копии данных в изолированном хранилище перед закрытием эмулятора, а затем снова восстанавливать его при перезапуске, но вам нужно будет запустить приложение в эмуляторе, прежде чем вы можно сделать восстановление. Это боль, и, честно говоря, вероятно, не стоит этого делать. - person ZombieSheep; 17.02.2012
comment
нет, мне это не нужно, я просто хочу, чтобы мой каталог оставался постоянным даже после закрытия приложения в Windows Phone. Спасибо за информацию, она полезна - person ; 17.02.2012

Вы также можете использовать IsolatedStorageSettings.ApplicationSettings для хранения учетных данных пользователя вместо записи файла:
http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragesettings.applicationsettings%28v=vs.95%29.aspx

И, как уже говорили другие, в эмуляторе эти настройки сохраняются только во время работы самого эмулятора. обратите внимание, что вам не нужно закрывать эмулятор между каждым сеансом отладки. Вы можете нажать кнопку «Домой» на эмуляторе, чтобы проверить вход и выход из приложения.

person Joel Martinez    schedule 17.02.2012
comment
но в этом сообщении stackoverflow.com/q/5353323/1099894 они сказали использовать настройки сайта вместо настроек приложения. Но даже когда я использовал настройки сайта, я не смог добиться постоянства. - person ; 17.02.2012
comment
Хм, я не уверен, что это имеет значение. Но две вещи: во-первых, убедитесь, что вы сохраняете значения до завершения процесса. И во-вторых, как уже указывали все, включая меня, в этом треде, ничего не будет сохраняться при закрытии эмулятора. Если вы закроете эмулятор, все будет стерто, и запуск нового экземпляра эмулятора приведет к совершенно новой (т.е. без данных) операционной системе. - person Joel Martinez; 17.02.2012

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

Дополнительную информацию об ISETool и некоторые инструкции можно найти на странице Как: использовать статью обозревателя изолированных хранилищ на сайте msdn.

person MarcinJuraszek    schedule 18.02.2012