繁体   English   中英

通用Windows应用程序运行时组件未在使用Visual Studio 2015的Windows 10上产生UserIdentity

[英]Universal Windows Application Runtime component not resulting UserIdentity on Windows 10 using Visual Studio 2015

我正在将Windows 10计算机和Visual Studio 2015用于具有Windows运行时组件和通用Windows应用程序(UWA)的项目。 UWA具有Windows运行时组件的引用,该组件执行一项任务来获取已登录用户的UserIdentity(窗口NT ID,即“ DomainName / UserName”)。 创建UWA测试项目以调试运行时组件。 如果我们在运行时组件中获得UserIdentity,则可以使用对Windows10 cordova项目的组件引用来在javascript中获取UserIdentity。
在这里,我们面临的问题是,没有代码可用于登录用户的域名/用户名。 我们已将此代码从Windows 8.1升级到10,因为该代码在Windows 8.1上可以很好地运行,但在Windows 10中却有问题。以下是我们用于获取UserIdentity的代码:

public sealed class getNTID
{
    public static IAsyncOperation<string> DownloadAsStringsAsync()
    {

        return Task.Run<string>(async () =>
        {

            IReadOnlyList<User> users = await User.FindAllAsync();

            var current = users.Where(p => p.AuthenticationStatus == UserAuthenticationStatus.LocallyAuthenticated &&
                                    p.Type == UserType.LocalUser).FirstOrDefault();


            var data = await current.GetPropertyAsync(KnownUserProperties.AccountName);

            return data.ToString();

        }).AsAsyncOperation();
    }
} 

最后,我们在数据变量中得到空字符串。 如果有人分享他们的经验,或者他们在提到的平台上遇到过此类问题,那将是很棒的。

用户类别是Windows 10的新增功能,与您使用的Windows 8.1中的UserInformation不同。 访问用户的个人信息是您必须请求的特权,因此在商店应用的Package.appxmanifest中,您需要在“功能”选项卡中启用“用户帐户信息”功能。

当您调用GetPropertyAsync ,您的用户将从系统中获得如下的权限提示,即您可以获取该权限。 有关功能的更多详细信息,请参考此文档 在此处输入图片说明

对于GetPropertyAsync方法,如果属性丢失或不可用,则返回一个空字符串。 因此,如果您已经完成但仍获得null值,则可能是该属性丢失或不可用。

这是我通过运行代码以获取当前用户的DomainName的结果(我还将代码放入Windows运行时组件中)。

在此处输入图片说明

更多细节请参考官方样品

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM