2016-09-10 51 views
0

我正嘗試將js的azure Active Directory身份驗證庫集成到我的網站。我下載了SPA樣本,並使其適用於我的應用程序細節。如何將用戶信息傳遞迴ADAL角度的服務器端

但是,如何將用戶信息傳遞迴服務器?

例如,這是在服務器側上的示例代碼以檢索已登錄的用戶:

string owner = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value; 
IEnumerable<Todo> currentUserToDos = db.Todoes.Where(a => a.Owner == owner); 

僱主串原來是一個GUID像比可讀的用戶名或電子郵件地址令牌其他。

有沒有辦法通過直接使用此庫來檢索用戶名或電子郵件地址,或者我必須自己將它發送到服務器端?

回答

1

ClaimTypes.NameIdentifier是一個GUID獨特每個用戶。如果您想要可讀的用戶名或電子郵件地址,請嘗試ClaimTypes.EmailClaimTypes.Name

+0

謝謝,這正是我正在尋找的。 – daxu

1

是的,我們可以通過adal-angular.js直接從客戶端獲取用戶信息。它已經將用戶信息存儲到$ rootScope。 userInfo,我們可以從中檢索用戶信息,而不是從Web服務器獲取。

這裏是一個檢索姓名和電子郵件地址代碼:

console.log($rootScope.userInfo.userName); 
console.log($rootScope.userInfo.profile.name); 
console.log($rootScope.userInfo.profile.upn); 

及以下的用戶信息對象的結構,供大家參考數字: enter image description here

相關問題