2017-04-08 48 views
0

我正在使用此包https://www.nuget.org/packages/Microsoft.Identity.Client 來驗證用戶,auth工作正常,問題是,我想使用登錄後得到的令牌來獲取用戶姓名和電子郵件(因爲我不僅需要訪問收件箱,聯繫人和日曆,還需要使用電子郵件將用戶鏈接到電子郵件)。 問題是,當我得到的令牌,我得到一個很長的字符串作爲userId(我猜加密)。有什麼方法可以使用這個軟件包來獲取電子郵件嗎?使用Microsoft.Identity.Client獲取用戶名和電子郵件

這是我得到的令牌後面的部分

public SessionTokenCache(string userId, HttpContextBase httpContext) 
    { 
     this.userId = userId; 
     cacheId = userId + "_TokenCache"; 
     this.httpContext = httpContext; 
     BeforeAccess = BeforeAccessNotification; 
     AfterAccess = AfterAccessNotification; 
     Load(); 
    } 

這是我跟 https://dev.outlook.com/restapi/tutorial/dotnet

回答

0

一旦你有一個道理,也許你可以使用圖形API來獲取詳細教程爲登錄用戶?結果是Json可以用來提取你想要的位。

 public static async Task<string> GetUserData(string token) 
    { 
     //get data from API 
     HttpClient client = new HttpClient(); 
     HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Get, "https://graph.microsoft.com/v1.0/me"); 
     message.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", token); 
     HttpResponseMessage response = await client.SendAsync(message); 
     string responseString = await response.Content.ReadAsStringAsync(); 
     if (response.IsSuccessStatusCode) 
      return responseString; 
     else 
      return null; 
    } 
相關問題