public override async Task <ClaimsIdentity> CreateIdentityAsync(PulseIdentityUser user, string authenticationType) { IList <Claim> claims = new List <Claim>(); PulseUserManager userManager = ResolverFactory.GetService <PulseUserManager>(); IClientService clientService = ResolverFactory.GetService <IClientService>(); var roleName = userManager.GetRoles(user.Id).FirstOrDefault(); var client = await clientService.FindByClientIdAsync(user.ClientId); claims.Add(new Claim(ClaimTypes.NameIdentifier, user.Id, null, ClaimsIdentity.DefaultIssuer, "Provider")); claims.Add(new Claim(ClaimTypes.Name, user.UserName, null, ClaimsIdentity.DefaultIssuer, "Provider")); claims.Add(new Claim("ClientId", user.ClientId, null, ClaimsIdentity.DefaultIssuer, "Provider")); claims.Add(new Claim("AllowedGrant", Enum.GetName(typeof(OAuthGrant), client.AllowedGrant), null, ClaimsIdentity.DefaultIssuer, "Provider")); claims.Add(new Claim(ClaimTypes.Role, roleName, null, ClaimsIdentity.DefaultIssuer, "Provider")); var claimsIdentity = new ClaimsIdentity(claims, authenticationType); return(await Task.FromResult(claimsIdentity)); }
public static PulseUserManager Create(IdentityFactoryOptions <PulseUserManager> options, IOwinContext context) { var identityDbContext = context.Get <PulseContext>(); var userManager = new PulseUserManager(new PulseUserStore(identityDbContext)); userManager.UserValidator = new UserValidator <PulseIdentityUser>(userManager) { AllowOnlyAlphanumericUserNames = false, RequireUniqueEmail = false, }; userManager.PasswordValidator = new PasswordValidator { RequiredLength = 1, RequireNonLetterOrDigit = false, RequireDigit = false, RequireLowercase = false, RequireUppercase = false, }; return(userManager); }