gpt4 book ai didi

c# - Windows Phone 7 Silverlight 使用 session

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:10 24 4
gpt4 key购买 nike

我正在创建一个 Windows 7 移动 Silverlight 项目。我使用 Rest api 进行身份验证,使用类说 认证 .我得到一个身份验证 token 作为响应,并将它分配给一个类属性 身份验证 token 因为我需要在不同的地方使用它。有什么方法可以将此 AuthToken 存储在 session 或其他任何东西中。因为我在 wp7 中没有找到任何 session 示例。谢谢

最佳答案

如果您想要临时 session 存储(应用程序的生命周期,包括用户使用后退按钮返回您的应用程序的时间),那么您可以使用 电话状态 .电话状态类似于 ASP.NET 中的 session 状态。它只是带有字符串键的(可序列化)对象的字典,不会在您的应用程序启动时维护,但当您的应用程序从 Back Stack 导航到时,它会恢复。

这是一个用于恢复名为 myObject 的自定义对象的示例:

private CustomObject myObject;

protected override void OnNavigatedFrom(NavigationEventArgs args)
{
//Save to State when leaving the page
PhoneApplicationService.Current.State["myObject"] = myObject;
base.OnNavigatedFrom(args);
}

protected override void OnNavigatedTo(NavigationEventArgs args)
{
if (PhoneApplicationService.Current.State.ContainsKey("myObject"))
{
//Restore from State
myObject = (CustomObject)PhoneApplicationService.Current.State["myObject"];
}
else
{
//No previous object, so perform initialization
myObject = new myObject();
}
}

如果您需要在应用程序的所有实例中存储设置,请查看 IsolatedStorageSettings这是完美的。根据您的需要,还有其他选项( Charles Petzold has a free eBook with some great examples)。

不知道为什么上面的代码对你不起作用,但另一种选择是使用使用独立存储设置保存的应用程序属性。这是一个例子:

在您的 App.xaml.cs 中:
    public bool VibrationOn { get; set; }

private void Application_Launching(object sender, LaunchingEventArgs e)
{
LoadSettings();
}

private void Application_Activated(object sender, ActivatedEventArgs e)
{
LoadSettings();
}

private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
SaveSettings();
}

private void Application_Closing(object sender, ClosingEventArgs e)
{
SaveSettings();
}

private void LoadSettings()
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

bool vo;
if (settings.TryGetValue<bool>("VibrationOn", out vo))
VibrationOn = vo;
else
VibrationOn = true;
}

private void SaveSettings()
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
settings["VibrationOn"] = VibrationOn;
}

然后,您可以使用以下代码在应用程序的任何位置访问此属性:
    if (Application.Current.VibrationOn)
{
VibrateController.Default.Start(TimeSpan.FromMilliseconds(200));
}

关于c# - Windows Phone 7 Silverlight 使用 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5991604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com