uwp - StoreContext 用户属性在单用户 UWP 应用程序中始终为 null

标签 uwp windows-store-apps windows-10 windows-store xbox-one

我正在开发一款适用于 UWP(通用 Windows 平台)的应用程序,可在 Windows 10 和 Xbox One 设备上使用。该应用程序是 single user application .我试图在运行时确定事件登录用户的唯一标识符——只是一个没有任何个人身份信息的 ID。 StoreContext class 的文档建议我应该能够通过检查默认 StoreContext 对象上的 User 属性来确定这一点;具体来说,NonRoamableId 属性似乎是合适的。但是,在我运行应用程序的每个上下文中(调试、部署、Windows、Xbox),StoreContext 的 User 属性始终为 null。这是预期的吗?我找不到任何其他方法来确定此信息。

注意:我知道 UserWatcher类及其查询系统用户的方法。但是,出于以下原因,我想避免使用它:

  1. 通过使用这些查询方法向应用公开的属性不足以确定哪个 User 是与当前 StoreContext 关联的用户,这意味着这样的解决方案将是容易出错。
  2. 以这种方式查询用户信息会导致权限弹出窗口,如果应用程序需要读取个人身份信息,这是有意义的,但由于我只是在寻找一个程序化的唯一标识符,所以这看起来不像应该是必要的。

我正在针对 Windows 10 创意者更新 SDK (10.0.15063) 进行开发。

编辑 11/16/2017

这看起来可能是 UWP 错误,现在已修复。在没有更改代码的情况下,我现在在应用启动时看到一个非空的 User 对象附加到 LaunchActivatedEventArgs。相应地接受了答案。

最佳答案

A related question here.

可以从 OnLaunched/Activated 事件参数中获取使用 MS 帐户登录的事件用户。

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
   Windows.System.User active_user = e.User;
}

这需要在程序包 list 中添加用户帐户信息 功能。

关于uwp - StoreContext 用户属性在单用户 UWP 应用程序中始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720518/

相关文章:

c# - Windows 8 商店应用程序不支持 System.Threading.Thread

vbscript - 在 Windows 10 上运行的系统上设置本地计算机名称和静态 IP 地址

windows - 如何在 Windows 10 上安装 Inspect 工具?

C# UWP Visual Studio 2017 单元测试

c# - 使用绑定(bind)更改 GridView 项的可见性

c# - 如何通过异步方法有效地更新 UI?

C# UWP TextBlock 文本以编程方式更改按钮样式

c# - 为 Release 编译的 UWP 中的 MissingTemplateException

c# - 如何在 Windows 10 通用应用程序中切换到后置摄像头

.net - 如何打包针对.NET Core的可移植.NET库?