簡體   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