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