如何从 ADAL AuthenticationResult 获取 ClaimsPrincipal
How to get ClaimsPrincipal from ADAL AuthenticationResult
我正在使用 Azure Active Directory 身份验证库在 WPF 应用程序中登录用户。在调用 AuthenticationContext.AcquireToken()
后,我得到 AuthenticationResult
和一些 UserInfo
但它没有提供我的应用程序使用的 ClaimsPrincipal
。此外 System.Security.Claims.ClaimsPrincipal.Current
returns 只有一个空主体对象,其中没有填充任何声明。如何为登录用户获取 ClaimsPrincipal
?
AuthenticationResult.AccessToken 是代表用户的 JWT 令牌。您可以使用 http://www.nuget.org/packages/System.IdentityModel.Tokens.Jwt/5.0.0-rc1-211161024 来读取令牌并创建声明主体。 JwtSecurityTokenHandler.ValidateToken 的 api 采用可用于范围验证的 TokenValidationParameters。
综上所述,根据您的需要(也许您不需要 ClaimsPrincipal),您可能想看看 AuthenticationResult.UserInfo 属性.
我正在使用 Azure Active Directory 身份验证库在 WPF 应用程序中登录用户。在调用 AuthenticationContext.AcquireToken()
后,我得到 AuthenticationResult
和一些 UserInfo
但它没有提供我的应用程序使用的 ClaimsPrincipal
。此外 System.Security.Claims.ClaimsPrincipal.Current
returns 只有一个空主体对象,其中没有填充任何声明。如何为登录用户获取 ClaimsPrincipal
?
AuthenticationResult.AccessToken 是代表用户的 JWT 令牌。您可以使用 http://www.nuget.org/packages/System.IdentityModel.Tokens.Jwt/5.0.0-rc1-211161024 来读取令牌并创建声明主体。 JwtSecurityTokenHandler.ValidateToken 的 api 采用可用于范围验证的 TokenValidationParameters。
综上所述,根据您的需要(也许您不需要 ClaimsPrincipal),您可能想看看 AuthenticationResult.UserInfo 属性.