1

我正在使用Windows 10計算機和Visual Studio 2015來運行具有Windows運行時組件和通用Windows應用程序(UWA)的項目。 UWA引用了Windows運行時組件,它執行獲取登錄用戶的UserIdentity(Window NT ID,即「DomainName/UserName」)的任務。創建UWA測試項目以調試運行時組件。如果我們在運行時組件中獲得UserIdentity,那麼我們可以使用組件引用來訪問我們的Windows10 cordova項目以獲取JavaScript中的UserIdentity。
在這裏,我們正面臨的問題,沒有任何代碼工作獲取登錄用戶的域名/用戶名。我們已經從Windows升級驗證碼8.1至10戴這個代碼與Windows 8.1中偉大的工作,但在Windows 10有問題,下面是我們使用得到的UserIdentity代碼:通用Windows應用程序運行時組件在Windows 10上使用Visual Studio 2015時不導致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(); 
    } 
} 

我們越來越空字符串在數據變量末尾。如果有人分享他們的經驗,或者他們遇到了這樣的問題,那就太好了。

回答

0

User class是Windows 10的新增功能,與您在Windows 8.1中使用的UserInformation不同。訪問用戶的個人信息是您必須申請的權限,因此在商店應用程序的Package.appxmanifest中,您需要啓用Capabilities選項卡中的用戶帳戶信息功能。

當您撥打GetPropertyAsync時,您的用戶將從系統獲得如下權限提示,接受該提示即可獲得該權限。更多關於性能的細節請參考this documententer image description here

對於GetPropertyAsync方法,如果屬性丟失或不可用,則返回空字符串。所以,如果你已經完成,但你仍然得到空值,也許該屬性是失蹤或不可用。

這是我通過運行代碼獲取當前用戶DomainName的結果(我也把代碼放在了windows運行時組件中)。

enter image description here

更多細節請參考official sample

相關問題