C# 在WP7中存储LiveConnectSession
我想在我的Windows Phone 7应用程序上使用Hotmail API。因此,我必须授权访问我的移动应用程序。我使用的是,这在一开始就非常有效。我使用以下代码进行身份验证:C# 在WP7中存储LiveConnectSession,c#,windows-phone-7,C#,Windows Phone 7,我想在我的Windows Phone 7应用程序上使用Hotmail API。因此,我必须授权访问我的移动应用程序。我使用的是,这在一开始就非常有效。我使用以下代码进行身份验证: string[] requiredScope = { "wl.signin", "wl.calendars_update", "wl.offline_access" }; LiveAuthClient auth = new LiveAuthClient(Configuration.ClientID); auth.Log
string[] requiredScope = { "wl.signin", "wl.calendars_update", "wl.offline_access" };
LiveAuthClient auth = new LiveAuthClient(Configuration.ClientID);
auth.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(authInitializeCompletedHandler);
auth.LoginAsync(requiredScope);
如果该调用成功(并且当前成功,因此可以正常工作),我将存储检索到的会话。此会话可在LiveConnectClient构造函数中使用,以启用与MS API(在我的应用程序中为Hotmail API)的通信
LiveConnectClient client = new LiveConnectClient(_session);
我的问题是,我想以某种方式保存该会话,这样当应用程序被删除并恢复其焦点时,我就不希望用户再次请求许可——他已经给了我。我自己发现返回的会话包含AccessToken、RefreshToken和Expires属性(我知道这是什么,这不是问题所在)。我如何在以后的通话中使用这些信息?微软关于这方面的文档到此结束,我找不到任何有用的信息
我发现了两个变通方法:
- :不应该这样做,因为我不想在获取会话变量后显示Live按钮
- :这需要我完全重写我到目前为止所做的工作,因为一切都依赖于LiveConnectClient(这使得通信非常容易)
但我真的不想使用这种变通方法。我相信/希望有一个更好的解决办法。看来这个问题的答案如下
我知道你的意思,伙计。微软对其API设置的一些奇怪/随意的限制令人沮丧:(
LiveConnectClient client = new LiveConnectClient(_session);