ASP.NET Core MVC Interview Question #109

What are claims in ASP.NET Core?

Authentication, Authorization, Security & State Management Mid-Level Intermediate

Quick Interview Answer

A claim is a name-value statement about a user, such as a user identifier, email address, department, permission, or role. Claims are stored in one or more ClaimsIdentity objects within the current ClaimsPrincipal.

Detailed Explanation

A claim is a name-value statement about a user, such as a user identifier, email address, department, permission, or role. Claims are stored in one or more ClaimsIdentity objects within the current ClaimsPrincipal.

Claims are useful for authorization because policies can evaluate them without controllers manually inspecting database records for every simple permission decision.

Code Example

var userId = User.FindFirstValue(
    ClaimTypes.NameIdentifier);

var department = User.FindFirstValue(
    "department");