public OperationResult <string> Login(string username, string password) { //Validazione degli argomenti if (string.IsNullOrWhiteSpace(username)) { throw new ArgumentNullException("username is null"); } if (string.IsNullOrWhiteSpace(password)) { throw new ArgumentNullException("password is null"); } //Definisco i risultati di ritorno OperationResult <string> oResults = new OperationResult <string>(); //Eseguo in transazione using (var transaction = Session.ExecuteInTransaction()) { //Recupero l'utente User user = Session.QueryOver <User>() .WhereRestrictionOn(e => e.UserName).IsInsensitiveLike(username) .Where(e => e.Password == EncryptPassword.EncryptWithSha256(password)) .SingleOrDefault(); //Check su username if (user == null) { var vResults = new List <ValidationResult> { new ValidationResult("Utente non trovato.") }; oResults.ConcatValidationResults(vResults); oResults.ReturnedValue = "Utente o password invalidi"; IncreaseAccessCountFail(username); transaction.ExecuteCommit(); return(oResults); } //Aggiorno i campi utente user.AccessFailedCount = 0; //Eseguo la validazione logica var userValidation = ValidateEntity(user); oResults.ConcatValidationResults(userValidation); //Valuto il salvataggio if (!oResults.HasErrors()) { _userRepository.Save(user); transaction.ExecuteCommit(); } else { transaction.ExecuteRollback(); } } return(oResults); }
public OperationResult <object> ResetPassword(string username) { //Validazione degli argomenti if (string.IsNullOrWhiteSpace(username)) { throw new ArgumentNullException("Username is null"); } //Definisco i risultati di ritorno OperationResult <object> oResults = new OperationResult <object>(); //Eseguo in transazione using (var transaction = Session.ExecuteInTransaction()) { //Recupero l'utente User user = Session.QueryOver <User>() .WhereRestrictionOn(e => e.UserName).IsInsensitiveLike(username) .SingleOrDefault(); if (user == null) { throw new ArgumentNullException("User undefined"); } //Eseguo la generazione di una password temporanea string passwordTemp = PasswordGenerator.GenerateRandom(passwordGeneratorLength); user.Password = EncryptPassword.EncryptWithSha256(passwordTemp); //Eseguo la validazione logica dell'entità oResults.ValidationResults = ValidateEntity(user); //Valuto il salvataggio if (!oResults.HasErrors()) { _userRepository.Save(user); transaction.ExecuteCommit(); oResults.ReturnedValue = passwordTemp; try { NoticeRegisterViaEmail(user, passwordTemp); } catch (Exception) { } } else { transaction.ExecuteRollback(); } } //Ritorno i risultati return(oResults); }
public OperationResult <object> Register(UserDto userDto, IList <Role> roles) { if (userDto == null) { throw new ArgumentNullException(nameof(userDto)); } using (var transaction = Session.ExecuteInTransaction()) { var emailExist = _userRepository.Count(e => e.Email == userDto.Email) > 0; if (emailExist) { OperationResult <object> oResult = new OperationResult <object>(); oResult.ValidationResults.Add(new ValidationResult(string.Format("L'email è già presente nel sistema: {0}", userDto.Email))); return(oResult); } string passwordTemp = PasswordGenerator.GenerateRandom(passwordGeneratorLength); User newUser = new User { Firstname = userDto.Firstname, Surname = userDto.Surname, Email = userDto.Email, AccessFailedCount = 0, ImgFilePath = userDto.ImgFilePath, UserName = userDto.Username, Password = EncryptPassword.EncryptWithSha256(passwordTemp), Roles = roles }; OperationResult <object> oResults = new OperationResult <object>(); //Eseguo la validazione logica oResults.ConcatValidationResults(ValidateEntity(newUser)); //valuto il salvataggio if (!oResults.HasErrors()) { _userRepository.Save(newUser); transaction.ExecuteCommit(); if (!string.IsNullOrWhiteSpace(newUser.Email)) { NoticeRegisterViaEmail(newUser, passwordTemp); } } else { transaction.ExecuteRollback(); } return(oResults); } }
private IList <User> BuildUsers(IList <Role> roles) { IList <User> users = new List <User>(); User user1 = new User(); user1.Firstname = "Igcom"; user1.Surname = "Igcom"; user1.UserName = "******"; user1.Email = "*****@*****.**"; user1.Password = EncryptPassword.EncryptWithSha256("Igcom2019"); user1.AccessFailedCount = 0; user1.Roles = roles.Where(e => e.Name == "Admin").ToList(); //User user2 = new User(); //user2.Firstname = "Smartme"; //user2.Surname = "Smartme"; //user2.UserName = "******"; //user2.Email = "*****@*****.**"; //user2.Password = EncryptPassword.EncryptWithSha256("Smartme2019"); //user2.AccessFailedCount = 0; //user2.Roles = roles.Where(e => e.Name == "Admin").ToList(); User user3 = new User(); user3.Firstname = "Admin"; user3.Surname = "Admin"; user3.UserName = "******"; user3.Email = "*****@*****.**"; user3.Password = EncryptPassword.EncryptWithSha256("Leonardo2019"); user3.AccessFailedCount = 0; user3.Roles = roles.Where(e => e.Name == "Admin").ToList(); User user4 = new User(); user4.Firstname = "Profilo centrale operativa"; user4.Surname = "Profilo centrale operativa"; user4.UserName = "******"; user4.Email = "*****@*****.**"; user4.Password = EncryptPassword.EncryptWithSha256("Igcom2019"); user4.AccessFailedCount = 0; user4.Roles = roles.Where(e => e.Name == "Centrale Operativa").ToList(); User user5 = new User(); user5.Firstname = "Profilo Medico"; user5.Surname = "Profilo Medico"; user5.UserName = "******"; user5.Email = "*****@*****.**"; user5.Password = EncryptPassword.EncryptWithSha256("Medico2019"); user5.AccessFailedCount = 0; user5.Roles = roles.Where(e => e.Name == "Medico").ToList(); //User user6 = new User(); //user6.Firstname = "Profilo Cliente"; //user6.Surname = "Profilo Cliente"; //user6.UserName = "******"; //user6.Email = "*****@*****.**"; //user6.Password = EncryptPassword.EncryptWithSha256("Cliente2019"); //user6.AccessFailedCount = 0; //user6.Roles = roles.Where(e => e.Name == "Profilo Cliente").ToList(); //users.Add(user1); //users.Add(user2); users.Add(user3); //users.Add(user4); //users.Add(user5); //users.Add(user6); return(users); }