如何从ADAL AuthenticationResult获取ClaimsPrincipal

时间:2016-02-09 22:56:38

标签: azure-active-directory claims-based-identity

我正在使用Azure Active Directory身份验证库来登录WPF应用程序中的用户。致电AuthenticationContext.AcquireToken()后,我得到AuthenticationResult一些UserInfo,但它没有提供我的应用使用的ClaimsPrincipal。此外,System.Security.Claims.ClaimsPrincipal.Current仅返回一个空主体对象,其中未填充任何声明。如何获取已登录用户的ClaimsPrincipal

1 个答案:

答案 0 :(得分:3)

AuthenticationResult.AccessToken是表示用户的JWT令牌。您可以使用http://www.nuget.org/packages/System.IdentityModel.Tokens.Jwt/5.0.0-rc1-211161024来读取令牌并创建声明主体。 JwtSecurityTokenHandler.ValidateToken的api采用可用于范围验证的TokenValidationParameters。

所有这一切,根据您的需要(也许您不需要ClaimsPrincipal),您可能需要查看AuthenticationResult.UserInfo属性。