2017-04-08 15 views
0

私はこのパッケージを使用していますhttps://www.nuget.org/packages/Microsoft.Identity.Client ユーザーを認証するためにauthが正常に動作していますが、問題はユーザーを取得するためにログインした後にトークンを使用することです名前と電子メール(私は受信トレイ、連絡先、カレンダーにアクセスするだけでなく、電子メールを使用してユーザーをロールにリンクする必要があるため)。 問題は、私がトークンを取得したときに、私はuserId(私は暗号化されていると思われる)として長い文字列を取得します。このパッケージを使ってメールを受け取る方法はありますか?Microsoft.Identity.Clientを使用してユーザー名と電子メールを取得する

これは、これは私はあなたがトークンを持っていたら、多分あなたは詳細を取得するグラフAPIを使用することができます https://dev.outlook.com/restapi/tutorial/dotnet

答えて

0

に続くチュートリアルです私は戻ってトークンを取得セクション

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

ですログオンしたユーザーのために?結果は、あなたが望むビットを抽出するために使用できる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; 
    } 
関連する問題