2017-01-18 5 views
0

Я работаю над универсальным приложением Windows 10 с использованием C#, и я использую PHP и MySQL для проверки, хранения и отображения данных пользователю.Как сохранить вход пользователя в приложение для Windows-телефона?

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

Теперь у меня есть вопрос, я хотел бы знать, как я могу войти в систему после того, как они закроют приложение и снова откроют его, или даже если они перезагружают свой телефон или их ПК?

Я искал об этой теме, и, насколько я понял, мне нужно сохранить некоторые данные на машине пользователя и проверить эти данные, когда пользователь снова откроет приложение, но я не понял, как я могу это сделать или где хранить данные ! Могу ли я сделать это непосредственно на C# (имеет ли Microsoft какой-либо API), или мне нужна 3D-библиотека или ...?

+1

https://msdn.microsoft.com/en-gb/windows/uwp/app-settings/store-and-retrieve-app-data – stuartd

+0

@stuartd Спасибо :) – Soheyl

ответ

0

Ваше предположение верно. Вы должны локально хранить информацию о том, вошел ли пользователь в систему. Для этого вы можете использовать свойство «Локальные настройки». Они похожи на общие предпочтения в студии android. Основная идея состоит в том, чтобы локально хранить пару ключ-значение. В вашем случае ваш ключ будет некоторой строкой, которую вы будете использовать для восстановления данных, а ваше значение может быть логической переменной, которая хранит, зарегистрирован ли пользователь или нет. Каждый раз, когда вы открываете приложение, вы сначала восстанавливаете логическое значение и проверяете, зарегистрирован ли пользователь и т. Д. Это всего лишь предложение о том, как использовать эту концепцию, но поскольку вы не даете никакого кода, я не могу расширьте его и дайте правильный пример, используя свой собственный код. Здесь вы можете прочитать о том, как использовать LocalSettings:

https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.storage.applicationdata.localsettings?cs-save-lang=1&cs-lang=csharp#code-snippet-2

+0

Большое спасибо, я думаю, что смогу управлять работой сейчас, мне просто нужно было понять, как это сделать, поэтому я не отправил код! Спасибо за разъяснение этого :) – Soheyl

0

Вы можете использовать ApplicationData.Current.LocalSettings для хранения и получения значений.

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

Ниже приведены некоторые общие код:

public void Set<T>(string key, T value) 
    { 
     string serialized = JsonConvert.SerializeObject(value); 
     var settings = ApplicationData.Current.LocalSettings.Values; 
     if (!settings.Keys.Contains(key)) 
     { 
      settings.Add(key, serialized); 
     } 
     else 
     { 
      settings[key] = serialized; 
     } 
    } 

    private bool TryGet<T>(string key, out T result) 
    { 
     var settings = ApplicationData.Current.LocalSettings.Values; 
     if (!settings.Keys.Contains(key)) 
     { 
      result = default(T); 
      return false; 
     } 
     var value = settings[key] as string; 

     try 
     { 
      result = JsonConvert.DeserializeObject(value, typeof(T)); 
      return true; 
     } 
     catch 
     { 
      result = default(T); 
      return false; 
     } 
    }