在Windows 10 C#UWP通用Windows应用程序中获取UserName

Ian*_* GM 11 c# windows uwp

我正在努力解决Windows 10 UWP世界中的另一项简单任务.

我只需要当前Windows用户的UserName.Environment.UserName在UWP中不是一个东西.到目前为止,搜索网络的数量都没有帮助.因此我的帖子在这里.

任何人?这现在不可能吗?

Ser*_*aru 18

  1. 在Package.appxmanifest中为您的应用添加"用户帐户信息"功能

Package.appxmanifest,用户帐户信息

  1. 使用此代码获取用户显示名称:

    private async void Page_Loaded(object sender, RoutedEventArgs e)
    {
        IReadOnlyList<User> users = await User.FindAllAsync();
    
        var current = users.Where(p => p.AuthenticationStatus == UserAuthenticationStatus.LocallyAuthenticated && 
                                    p.Type == UserType.LocalUser).FirstOrDefault();
    
        // user may have username
        var data = await current.GetPropertyAsync(KnownUserProperties.AccountName);
        string displayName = (string)data;
    
        //or may be authinticated using hotmail 
        if(String.IsNullOrEmpty(displayName))
        {
    
            string a = (string)await current.GetPropertyAsync(KnownUserProperties.FirstName);
            string b = (string)await current.GetPropertyAsync(KnownUserProperties.LastName);
            displayName = string.Format("{0} {1}", a, b);
        }
    
        text1.Text = displayName;
    }
    
    Run Code Online (Sandbox Code Playgroud)

  • 真是的 获取用户名需要做很多工作。 (3认同)
  • 小心,它不适用于本地帐户(没有MS帐户链接)... (3认同)
  • 添加到@slayernoah 的评论。在 **Package.appxmanifest** 中,确保在“&lt;Capability&gt; &lt;/Capability&gt;”之间添加“&lt;uap:Capability Name="userAccountInformation" /&gt;”。这适用于 Windows 10 应用程序,您**必须**添加此内容。但是一旦添加了上面的代码(Sergui 的代码)就可以正常工作了。 (2认同)

小智 6

// get username
public string UserNameStr { get; set; } = WindowsIdentity.GetCurrent().Name;
Run Code Online (Sandbox Code Playgroud)

这将为您提供完整的域\用户名。


mar*_*nax 5

正如我所看到的,有一个User可用的类(UWP):https : //msdn.microsoft.com/en-us/library/windows/apps/windows.system.user.aspx

尝试这个:

var users = await User.FindAllAsync(UserType.LocalUser);
var name = await users.FirstOrDefault().GetPropertyAsync(KnownUserProperties.AccountName);
Run Code Online (Sandbox Code Playgroud)

  • 用户必须同意获取此信息,清单必须包含 uap:userAccountInformation 功能。 (3认同)