AddClaimsPrincipalFactory
services.AddIdentity<ApplicationUser, ApplicationRole>(options => { var allowed = options.User.AllowedUserNameCharacters + "ęóąśłżźćń"; options.User.AllowedUserNameCharacters = allowed; }).AddEntityFrameworkStores<DomainModelContext>() .AddRoles<ApplicationRole>() .AddClaimsPrincipalFactory<ApplicationClaimsIdentityFactory>() .AddDefaultTokenProviders();
public class ApplicationClaimsIdentityFactory : UserClaimsPrincipalFactory<ApplicationUser, ApplicationRole> { private readonly IHttpContextAccessor _httpContext; public ApplicationClaimsIdentityFactory(UserManager<ApplicationUser> userManager, RoleManager<ApplicationRole> roleManager, IOptions<IdentityOptions> options, IHttpContextAccessor httpContext) : base(userManager, roleManager, options) { _httpContext = httpContext; } public override async Task<System.Security.Claims.ClaimsPrincipal> CreateAsync(ApplicationUser user) { ClaimsPrincipal principal = await base.CreateAsync(user); ClaimsIdentity claimsIdentity = (ClaimsIdentity)principal.Identity; var ddd = claimsIdentity.Claims.Where(x => x.Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/name"); foreach (var dd in ddd) { claimsIdentity.RemoveClaim(dd); } //claimsIdentity.Claims.ToList().RemoveAt(30); //claimsIdentity.Claims.Where(x => x.Type == ) //claimsIdentity.AddClaim(new Claim("Deleted", user.Deleted.ToString().ToLower())); //_httpContext.HttpContext.User = principal; return principal; } }
Kategoria:
- Zaloguj się aby dodać komentarz.