public async Task <bool> ValidateUser(string username) { UserProviderLocal login = await(from p in this.db.LocalProvider.Include(o => o.User) where p.User.Username == username select p).FirstOrDefaultAsync(); return(login == null); }
public Task <ClaimsIdentity> ResolveUser(string username, string password) { UserProviderLocal login = (from p in this.db.LocalProvider.Include(o => o.User).Include(o => o.User.Roles) where p.User.Username == username select p).FirstOrDefault(); if (login != null) { if (this.crypto.CheckKey(login.PasswordHash, login.PasswordSalt, password)) { return(Task.FromResult(login.User.ToClaimsIdentity())); } } return(Task.FromResult <ClaimsIdentity>(null)); }
public async Task <ClaimsIdentity> ResolveUser(string username, string password) { UserProviderLocal login = await this.db.LocalProvider.Where(o => o.User.Username == username).FirstOrDefaultAsync(); if (login != null) { if (this.crypto.CheckKey(login.PasswordHash, login.PasswordSalt, password)) { string fingerprint = this.deviceProfiler.DeriveFingerprint(login.User); ClaimsIdentity identity = login.User.ToClaimsIdentity(this.config.ClaimsNamespace, fingerprint); return(identity); } } return(null); }
public async Task <ClaimsIdentity> SignupUser(ISignupServiceOptions options) { UserProviderLocal login = await(from p in this.db.LocalProvider.Include(o => o.User) where p.User.Username == options.Username select p).FirstOrDefaultAsync(); if (login != null) { throw new ServiceException($"A user account for {options.Username} already exists"); } User user = new User() { CultureName = options.CultureName, Enabled = true, Username = options.Username, DisplayName = options.DisplayName, TimeZoneId = options.TimeZoneId }; db.User.Add(user); string salt = crypto.CreateSalt(); db.LocalProvider.Add(new UserProviderLocal() { PasswordSalt = salt, PasswordHash = crypto.CreateKey(salt, options.Password), User = user, Provider = db.Provider.FirstOrDefault(o => o.ProviderId == ProviderTypes.Local) }); Role role = db.Role.FirstOrDefault(o => o.RoleId == RoleTypes.User); user.Roles.Add(new UserRole() { User = user, Role = role }); db.SaveChanges(); var fingerprint = this.deviceProfiler.DeriveFingerprint(user); return(user.ToClaimsIdentity(fingerprint)); }
public Task <ClaimsIdentity> ResolveUser(string username, string password) { UserProviderLocal login = (from p in this.db.LocalProvider.Include(o => o.User) .Include(o => o.User.Roles) .Include(o => o.User.Verifications) where p.User.Username == username select p).FirstOrDefault(); if (login != null) { if (this.crypto.CheckKey(login.PasswordHash, login.PasswordSalt, password)) { string fingerprint = this.deviceProfiler.DeriveFingerprint(login.User); ClaimsIdentity identity = login.User.ToClaimsIdentity(fingerprint); return(Task.FromResult(identity)); } } return(Task.FromResult <ClaimsIdentity>(null)); }
public async Task <bool> ValidateUser(string username) { UserProviderLocal login = await this.db.LocalProvider.Where(o => o.User.Username == username).FirstOrDefaultAsync(); return(login == null); }
private static User EnsureAdmin(DbContextBase db, ICryptoService crypto) { User adminUser = db.User.SingleOrDefault(o => o.Username == AdminEmail); if (adminUser == null) { adminUser = new User() { Username = AdminEmail, Enabled = true, DisplayName = "Webmaster", Verified = true }; db.User.Add(adminUser); db.SaveChanges(); } Role adminRole = db.Role.FirstOrDefault(o => o.RoleId == RoleTypes.Admin); if (adminRole == null) { adminRole = new Role() { CreatedByUser = adminUser, Enabled = true, Name = "Administrator", RoleId = RoleTypes.Admin }; db.Role.Add(adminRole); db.SaveChanges(); } if (!db.UserRole.Any()) { var userRole = new UserRole() { Role = adminRole, User = adminUser }; string salt = crypto.CreateSalt(); string hash = crypto.CreateKey(salt, "P@ssword"); var userProvider = new UserProviderLocal { CreatedOn = DateTime.Now, ProviderId = ProviderTypes.Local, PasswordSalt = salt, PasswordHash = hash, User = adminUser, }; db.UserRole.Add(userRole); db.UserProvider.Add(userProvider); db.SaveChanges(); } return(adminUser); }
private static User EnsureAdmin(DbContextBase db, ICryptoService crypto) { User admin = db.User.SingleOrDefault(o => o.Username == AdminEmail); if (admin == null) { admin = new User() { CultureName = "en", DisplayName = "Webmaster", Enabled = true, TimeZoneId = Globalization.DefaultTimeZoneId, Username = AdminEmail }; db.User.Add(admin); db.SaveChanges(); } Role role = db.Role.FirstOrDefault(o => o.RoleId == RoleTypes.Admin); if (role == null) { string name = RoleTypes.System.FirstOrDefault(o => o.Key == RoleTypes.Admin).Value; role = new Role() { CreatedByUser = admin, Enabled = true, Name = name, RoleId = RoleTypes.Admin }; db.Role.Add(role); db.SaveChanges(); } if (!db.UserRole.Any()) { var userRole = new UserRole() { Role = role, User = admin }; string salt = crypto.CreateSalt(); string hash = crypto.CreateKey(salt, "P@ssw0rd"); var userProvider = new UserProviderLocal { ProviderId = ProviderTypes.Local, PasswordSalt = salt, PasswordHash = hash, User = admin, }; db.UserRole.Add(userRole); db.UserProvider.Add(userProvider); db.SaveChanges(); } return(admin); }