2014-02-07 36 views
2

一些代碼來獲取登錄的用戶在Windows 8商店應用的用戶名:WinJS getPrincipalNameAsync

var x = Windows.System.UserProfile.UserInformation; 
var y = x.getPrincipalNameAsync().done(function(response) { 
    console.log(response); 
}); 

我有兩個虛擬機時,Windows 8和Windows 8.1。該代碼適用於Windows 8虛擬機上的解決方案,今天我按照此guide將我的應用程序重新定位到Windows 8.1。雖然重新定位工作,我可以將升級後的.appx部署到8.1平板電腦,但上述代碼僅返回「」。

請幫忙。

回答

6

從文檔:

只有域用戶有一個主體名稱。訪問主體名稱可以被隱私設置阻止(例如,如果UserInformation :: NameAccessAllowed屬性爲false)。如果訪問被阻止,則此方法返回一個空字符串。

所以,也許你的用戶是一個域用戶,或者你的windows8機器上的隱私與另一個不同。

要確保您的隱私設置允許讀取主體名稱,請在設置中檢查您的計算機 - >更改電腦設置 - >隱私並打開所需的隱私設置。

這是完整的文檔:http://msdn.microsoft.com/en-us/library/windows/apps/windows.system.userprofile.userinformation.getprincipalnameasync.aspx

+0

絕對是一個域用戶 - 而我開發的計算機上的管理員。 – markp3rry

+0

當您在Windosw 8.1機器上創建它時,您是否將用戶鏈接到Microsoft在線帳戶? –

+1

還檢查設置 - >更改電腦設置 - >隱私。現在打開所有隱私選項並運行應用程序 –