Identity - . , . .
ApplicationUser GenerateUserIdentityAsync, ClaimsIdentity :
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser, string> manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
userIdentity.AddClaims(new[]
{
new Claim("MyApp:FirstName",this.FirstName),
new Claim("MyApp:LastName",this.LastName),
});
return userIdentity;
}
- , cookie - .
HttpContext.Current.User.Identity - ClaimsIdentity , cookie. , , , , .
, IPrincipal
public static String GetFirstName(this IPrincipal principal)
{
var claimsPrincipal = principal as ClaimsPrincipal;
if (claimsPrincipal == null)
{
throw new DomainException("User is not authenticated");
}
var personNameClaim = claimsPrincipal.Claims.FirstOrDefault(c => c.Type == "MyApp:FirstName");
if (personNameClaim != null)
{
return personNameClaim.Value;
}
return String.Empty;
}
Razor: User.GetFirstName()
, - DI .
, , cookie cookie , - . IAuehtenticationManager.Signout() .