,我就能获得访问令牌。接下来,我将此访问令牌保存在数据库中,以备将来使用。使用存储在数据库中的令牌,我想获取用户的个人资料,但不确定如何操作。
public string GetAccessToken(string authorizationCode, string applicationID, string applicationSecret, string redirectUri)
{
//Redirect uri must match the redirect_uri used when requesting Authorization code.
//Note: If you use a redirect back to Default, as in this sample, you need to add a forward slash
//such as http://localhost:13526/
// Get auth token from auth code
TokenCache TC = new TokenCache();
//Values are hard-coded for sample purposes
string authority = Settings.Default.AADAuthorityUri;
AuthenticationContext AC = new AuthenticationContext(authority, TC);
ClientCredential cc = new ClientCredential(applicationID, applicationSecret);
//Set token from authentication result
return AC.AcquireTokenByAuthorizationCode(
authorizationCode,
new Uri(redirectUri), cc).AccessToken;
}
我检查了AuthenticationContext类的方法,但没有诸如“ GetMe”之类的方法。
感谢您的帮助。
答案 0 :(得分:1)
ADAL仅用于身份验证,不适用于调用Microsoft Graph API之类的API。
您需要获取https://graph.microsoft.com
资源的令牌,然后调用端点以获取用户信息:https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_get。
还有一个SDK可以使调用变得容易一些:https://www.nuget.org/packages/Microsoft.Graph/
答案 1 :(得分:1)
您可以在C#中使用JWTSecurityToken。另外,您可以访问https://jwt.io/来查看其工作情况。