C# 如何让用户登录windows phone应用程序?
我正在使用C#开发一个Windows10通用应用程序,我使用PHP和MySQL来验证、存储数据并向用户显示数据 因此,在登录过程中,我向PHP文件发送用户电子邮件和密码,然后将数据与存储在数据库中的数据进行比较,并向应用程序发送答案(成功或失败) 现在我有一个问题,我想知道在用户关闭并重新打开应用程序后,或者即使他们重新启动手机或PC,我如何让他们保持登录C# 如何让用户登录windows phone应用程序?,c#,login,win-universal-app,C#,Login,Win Universal App,我正在使用C#开发一个Windows10通用应用程序,我使用PHP和MySQL来验证、存储数据并向用户显示数据 因此,在登录过程中,我向PHP文件发送用户电子邮件和密码,然后将数据与存储在数据库中的数据进行比较,并向应用程序发送答案(成功或失败) 现在我有一个问题,我想知道在用户关闭并重新打开应用程序后,或者即使他们重新启动手机或PC,我如何让他们保持登录 我搜索了这个主题,据我所知,我需要在用户机器上存储一些数据,并在用户重新打开应用程序时检查这些数据,但我不知道如何才能做到这一点,也不知道在
我搜索了这个主题,据我所知,我需要在用户机器上存储一些数据,并在用户重新打开应用程序时检查这些数据,但我不知道如何才能做到这一点,也不知道在哪里存储数据!我可以直接在C#(微软是否有API)中这样做,或者我需要一个3d派对库或者 你的假设是正确的。您必须在本地存储有关用户是否登录的信息。为此,可以使用“本地设置”属性。这些类似于android studio中的共享首选项。其主要思想是在本地存储一个键值对。在您的情况下,您的密钥将是用于恢复数据的字符串,您的值可以是一个布尔变量,用于存储用户是否登录。每次打开应用程序时,您都会首先还原布尔值并检查用户是否已登录,等等。。。这只是一个如何使用这个概念的建议,但由于您没有给出任何代码,我无法扩展它,并使用您自己的代码为您提供一个适当的示例。在这里,您可以阅读如何使用LocalSettings:
您可以使用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;
}
}
公共无效集(字符串键,T值)
{
string serialized=JsonConvert.serialized对象(值);
var settings=ApplicationData.Current.LocalSettings.Values;
如果(!settings.Keys.Contains(key))
{
设置。添加(键,序列化);
}
其他的
{
设置[键]=序列化;
}
}
私有bool TryGet(字符串键,out T结果)
{
var settings=ApplicationData.Current.LocalSettings.Values;
如果(!settings.Keys.Contains(key))
{
结果=默认值(T);
返回false;
}
var值=设置[键]为字符串;
尝试
{
结果=JsonConvert.DeserializeObject(值,typeof(T));
返回true;
}
抓住
{
结果=默认值(T);
返回false;
}
}
@stuartd谢谢:)非常感谢,我想我现在可以管理这项工作了,我只需要了解如何做,这就是为什么我没有发送任何代码!谢谢你澄清这一点:)