[英]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.