public override string CreateUserAndAccount(string userName /*email*/, string password, bool requireConfirmation, IDictionary <string, object> values) { userName = userName.Trim().ToLower(); Domain.Entities.User userProfile = usersService.GetUserProfile(userName); if (userProfile != null) { throw new MembershipCreateUserException(MembershipCreateStatus.DuplicateEmail); } User newUserProfile = new User { Name = userName, Email = userName }; usersService.Save(newUserProfile); Domain.Entities.Membership membership = new Domain.Entities.Membership { UserId = newUserProfile.UserId, CreateDate = DateTime.Now, PasswordSalt = usersService.GetHash(password), IsConfirmed = false, ConfirmationToken = Guid.NewGuid().ToString().ToLower() }; usersService.Save(membership, add: true); return(membership.ConfirmationToken); }
public override bool ValidateUser(string username, string password) { Domain.Entities.User userProfile = usersService.GetUserProfile(username); if (userProfile == null) { return(false); } Domain.Entities.Membership membership = usersService.GetMembership(userProfile.UserId); if (membership == null) { return(false); } if (!membership.IsConfirmed) { return(false); } if (membership.PasswordSalt == usersService.GetHash(password)) { return(true); } // first once time we can validate through membership ConfirmationToken, // to be logged in immediately after confirmation if (membership.ConfirmationToken != null) { if (membership.ConfirmationToken == password) { membership.ConfirmationToken = null; usersService.Save(membership, add: false); return(true); } } return(false); }
public override string GetUserNameFromId(int userId) { Domain.Entities.User userProfile = usersService.GetUserProfile(userId); if (userProfile != null) { return(userProfile.Name); } return(null); }
public override void CreateOrUpdateOAuthAccount(string provider, string providerUserId, string userName) { Domain.Entities.User userProfile = usersService.GetUserProfile(userName); if (userProfile == null) { throw new Exception("User profile was not created."); } usersService.SaveOAuthMembership(provider, providerUserId, userProfile.UserId); }