问题
I'm using .NET Core, with Azure B2C Authentication. On the project I'm developing, I can find the @User.Identity.Name, but I cant find the C# object name/path for the other "built in" User Attributes such as @User.Identity.UserID , @User.Identity.firstTimeLogging, @User.Identity.firstName. These Attribute are enabled in Azure AD. Thank you for your time.
回答1:
You can access custom claims by including them in the token sent to the app or by querying the Azure AD Graph API (not the Microsoft Graph yet).
- For the first option reading it from claim , you can follow below thread :
https://stackoverflow.com/a/43996372/6049604
- For the other option , using graph api to get user details , you can browse the below doc for the same:
https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet?tabs=applications
Additional reference:
https://github.com/AzureADQuickStarts/B2C-GraphAPI-DotNet/blob/master/B2CGraphClient/Program.cs
Hope it helps.
回答2:
Thanks to Mohit, this is the solution I found.
var claimsIdentity = (System.Security.Claims.ClaimsIdentity)User.Identity;
List<String> termsList = new List<String>();
foreach (var claim in claimsIdentity.Claims)
{
termsList.Add(claim.Value);
}
//The 2nd item in the claim is the objectidentifier
Debug.WriteLine(termsList[2]);
// there is probably a cleaner way, but it works for me.
来源:https://stackoverflow.com/questions/59367686/net-core-using-azure-b2c-authentication-looking-for-the-user-attributes-such-a