0
我想用ADFS验证用户,并且使用ADAL。鉴于我可以获得AccessToken,验证似乎起作用。问题是,查看代码authResult
包含UserInfo
,其中所有属性(例如GivenName
或FamilyName
)均为null
。从UFS中的ADFS获取UserInfo与ADAL
AuthenticationContext authContext = null;
AuthenticationResult authResult;
try
{
authContext = new AuthenticationContext(authority, false);
authResult = await authContext.AcquireTokenAsync(resource, clientId, new Uri(returnUri),
new PlatformParameters(PromptBehavior.Auto, false));
}
由于ADFS配置,这些值为空?我注意到解码AccessToken返回我可以读取用户信息。但我不认为解码智威汤逊令牌是实现这些信息的正确方法。你有更好的建议吗?
我也看到有人使用要求获得信息,但我完全不知道如何使用它UWP,因为所有的样品,我发现用
ClaimsPrincipal claimsPrincipal = System.Threading.Thread.CurrentPrincipal as ClaimsPrincipal;
但System.Threading.Thread
不适用于UWP 。
你能帮助明白我怎么能得到id_token并提取索赔? – user2297037
'id_token'应该能够通过'authResult'对象('authResult.IdToken')获取作为您共享的代码。并且从标记中提取声明,您可以使用'System.IdentityModel.Tokens.Jwt'。这里是[类似的线程](https://stackoverflow.com/questions/38340078/how-to-decode-jwt-token)供您参考。 –
不幸的是,'authResult.IdToken'为空... – user2297037