public async System.Threading.Tasks.Task <ActionResult> NovaPessoa([Bind(Include = "PrimeiroNome, Sobrenome, CPF, RG, Sexo, DtNascimento, TelPrincipal, TelOpcional, Email, CEP, Logradouro, Complemento, Numero, Bairro, Cidade, Estado, Pais, PerfilID")] RegistrarComumViewModel novaPessoa) { if (ModelState.IsValid) { //Criando pessoa int pID = _userStore.AddPessoa(novaPessoa); //Criando usuario RBAC_Usuario RU = new RBAC_Usuario(); RU.Pessoa_ID = pID; RU.Username = novaPessoa.Email; //Gernado Senha tempraria e salt string tempToken = SecurityMethods.GenerateTempTokenAccess(); string tempSalt = SecurityMethods.GenerateSalt(); string tempPass = SecurityMethods.HashPasswordPBKDF2(tempToken, tempSalt); //Criando usuario RU.Senha_Hash = tempPass; RU.Salt = tempSalt; RU.Dt_Criacao = DateTime.Now.Date; RU.Dt_Ultima_Modif = DateTime.Now.Date; RU.Bloqueado = false; db.RBAC_Usuario.Add(RU); db.SaveChanges(); //Enviando Email da senha EmailMessage message = new EmailMessage(novaPessoa.Email, "Bem-vindo ao NimbusAcad!", "Olá, seja bem-vindo ao NimbusAcad \n Esta é sua senha: " + tempToken + "\nRecomenda-se que altere a senha para uma, com fácil memorização."); await _emailService.Send(message); //Enviando Email de confirmação de email var callbackUrl = Url.Action("ConfirmarEmail", "Account", new { novaPessoa.Email }, null); EmailMessage confirmacao = new EmailMessage(novaPessoa.Email, "Confirmar email", "Por favor, confirme seu email clicando neste link: <a href=\"" + callbackUrl + "\">Confirmar</a>"); await _emailService.Send(confirmacao); //Assimilando perfil de acesso int uID = _userStore.GetUsuarioID(novaPessoa.Email); //VinculoPerfilUsuarioViewModel VPUVM = new VinculoPerfilUsuarioViewModel(); //VPUVM.UsuarioID = uID; //VPUVM.PerfilID = novaPessoa.PerfilID; RBAC_Link_Usuario_Perfil linkUP = new RBAC_Link_Usuario_Perfil(); linkUP.Usuario_ID = uID; linkUP.Perfil_ID = novaPessoa.PerfilID; _roleStore.AddUsuarioPerfil(linkUP); return(RedirectToAction("RegistrarDocumento", "Funcionario", new { id = pID })); } PopulatePerfilDropDownList(novaPessoa.PerfilID); return(View(novaPessoa)); }
public string ForgotPassword(int usuarioID) { using (NimbusAcad_DB_Entities db = new NimbusAcad_DB_Entities()) { var usuario = db.RBAC_Usuario.Find(usuarioID); if (usuario != null) { string newSalt = SecurityMethods.GenerateSalt(); string newToken = SecurityMethods.GenerateTempTokenAccess(); string newTokenEncrypted = SecurityMethods.HashPasswordPBKDF2(newToken, newSalt); usuario.Senha_Hash = newTokenEncrypted; usuario.Salt = newSalt; db.Entry(usuario).State = EntityState.Modified; db.SaveChanges(); return(newToken); } else { return(string.Empty); } } }