在 Windows 10 C# UWP Universal Windows 应用程序中获取用户名
Get UserName in a Windows 10 C# UWP Universal Windows app
我正在为 Windows 10 UWP 世界中的另一个简单任务而苦苦挣扎。
我只需要当前 Windows 用户的用户名。 Environment.UserName 不是 UWP 中的东西。到目前为止,网络搜索再多也无济于事。因此我的 post 在这里。
有人吗?现在这不可能吗?
如我所见,有一个 User
class 可用 (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);
- 在 Package.appxmanifest
中为您的应用添加 "User Account Information" 功能
使用此代码获取用户显示名称:
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;
}
您还可以从 Application.OnLaunched method see here.
中获取启动应用程序的用户
尽管如此,您仍然需要在清单中声明用户信息功能。
快速示例(省略号表示不适用的生成代码):
sealed partial class App : Application
{
...
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
User currentUser = e.User;
...
}
...
}
// get username
public string UserNameStr { get; set; } = WindowsIdentity.GetCurrent().Name;
这将为您提供完整的 domain\username。
我正在为 Windows 10 UWP 世界中的另一个简单任务而苦苦挣扎。
我只需要当前 Windows 用户的用户名。 Environment.UserName 不是 UWP 中的东西。到目前为止,网络搜索再多也无济于事。因此我的 post 在这里。
有人吗?现在这不可能吗?
如我所见,有一个 User
class 可用 (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);
- 在 Package.appxmanifest 中为您的应用添加 "User Account Information" 功能
使用此代码获取用户显示名称:
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; }
您还可以从 Application.OnLaunched method see here.
中获取启动应用程序的用户尽管如此,您仍然需要在清单中声明用户信息功能。
快速示例(省略号表示不适用的生成代码):
sealed partial class App : Application
{
...
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
User currentUser = e.User;
...
}
...
}
// get username
public string UserNameStr { get; set; } = WindowsIdentity.GetCurrent().Name;
这将为您提供完整的 domain\username。