当用户拥有链接的Windows / Microsoft帐户时,如何获得类似于用于Live帐户登录的Windows应用商店应用的UX?

时间:2014-05-01 15:11:40

标签: c# windows windows-phone-8

我正在为我的Win8 / WP8应用程序进行数据同步 - 用 XAML / C#编写。定期/或在应用启动/暂停时,我想与用户的OneDrive同步数据文件。为此,我需要让他们登录到他们的Microsoft Live帐户。我希望使用Live SDK(v5.6)来做到这一点。

问题

对于拥有本地Windows 8帐户的用户,Live SDK允许我使用内置凭据提示进行签名。这很有效。

对于将其Microsoft帐户与其Windows 8帐户相关联(并使用其Microsoft帐户登录到Windows)的用户,Live SDK允许我使用单点登录 - 而且我有此工作。

但我无法呼叫退出,以便使用其他Microsoft帐户登录。

1b 是我的问题。内置的Windows应用商店应用程序允许用户使用可以使用链接到其Windows帐户的MS帐户的用户体验 - 或者 - 选择使用其他MS帐户。实际上:“以不同用户身份登录”选项。 (见附件)。在内置的Windows商店应用程序中,它看起来并不像技术上单点登录,但这是我想要的用户体验 - 我不太关心单点登录,它很不错,但是以其他用户身份登录是一项非常重要的要求。

我尝试了什么:

问题(S):

  • 我是否可以使用Win32 / WinRT API在XAML应用中显示凭据提示?
  • 我可以这样使用WebView和auth用户吗?
  • 我应该回到使用REST API并为此推送自己的auth flow + UI吗?

WinStore应用程序是如何做到的?

变通办法/商店认证

现在,我有点担心我只有最后一个选项:通过Live connect REST API滚动我自己的.NET客户端,并为凭证提示添加我自己的UI,以及一个看起来完全正确的用户同意对话框就像Windows运行时提供的那些。在这种情况下,存储认证会发生什么?我可以先通过WACK运行它 - 但商店应用程序证书指南没有谈到这个:所以不确定它是否会通过认证。

我在应用认证指南中找不到Microsoft帐户。

MSDN上Live SDK的文档明确提到我们并不打算创建自己的登录UI:http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh968445.aspx

然而,商店应用似乎违反了这一点 - 可能是因为它根本不使用Live SDK。

还有一篇MSDN文章说,当用户使用Microsoft帐户登录Windows时,只能在应用内部注销: http://msdn.microsoft.com/en-us/library/windows/apps/jj193591.aspx#adding_user-authentication_functionality_to_your_windows_store_apps并且唯一的方法是让用户分离Windows / Microsoft帐户或切换到其他用户帐户。

再次 - 显然事实并非如此。商店应用为用户提供了使用其他帐户的方式。

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可能需要查看Web身份验证代理:http://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn448945.aspx

它将调用实际的Microsoft帐户登录流程,但仍然可以让您灵活地注销并以其他用户身份重新登录。