public ActionResult Index(LoginModel model) { //Cria o objeto cliente somente com o filtro passado cliente cliente = db.clientes.ToList().Find(x => x.LOGIN == model.Login); //cliente cliente = db.clientes.Single(x => x.NOME == model.Login); if (cliente == null) { ModelState.AddModelError("", "Inválido Login ou Senha"); } if (ModelState.IsValid) { //Descriptar senha vinda do banco de dados string texto = cliente.SENHA; //Está chave tem que ser a mesma que a do texto Encriptado. string key = "Criptografia"; Criptografia.Criptografia crip = new Criptografia.Criptografia(CryptProvider.DES); crip.Key = key; string senhaDecrypt = crip.Decrypt(texto); //if (cliente != null && model.Login == cliente.LOGIN && model.Senha == cliente.SENHA) alterado para funcionar descriptografia if (model.Login == cliente.LOGIN && model.Senha == senhaDecrypt) { //FormsAuthentication.SetAuthCookie(model.Login, false); FormsService.SignIn(model.Login, false); //Ao autenticar usuário no sistema, incluir ROLE ADM e NOR e ainda incluí-lo na ROLE respectiva if (cliente.TIPOCLIENTE.ToUpper() == "ADM") { // Criando Role ADM if (!Roles.RoleExists("ADM")) { Roles.CreateRole("ADM"); } // Definindo Usuário para uma Role if(!Roles.IsUserInRole(cliente.LOGIN, "ADM")) { //Antes de associar o Login a uma nova Role, excluir de associação de outras Roles. string[] strRolesForUser = Roles.GetRolesForUser(cliente.LOGIN); if (strRolesForUser.Length > 0) { Roles.RemoveUserFromRoles(cliente.LOGIN, strRolesForUser); } //Associar Login a Role Roles.AddUserToRole(cliente.LOGIN, "ADM"); } } else if (cliente.TIPOCLIENTE.ToUpper() == "NOR") { // Criando Role NOR if (!Roles.RoleExists("NOR")) { Roles.CreateRole("NOR"); } // Definindo Usuário para uma Role if (!Roles.IsUserInRole(cliente.LOGIN, "NOR")) { //Antes de associar o Login a uma nova Role, excluir de associação de outras Roles. string[] strRolesForUser = Roles.GetRolesForUser(cliente.LOGIN); if (strRolesForUser.Length > 0) { Roles.RemoveUserFromRoles(cliente.LOGIN, strRolesForUser); } Roles.AddUserToRole(cliente.LOGIN, "NOR"); } } else { //Se entrar aqui significa que o Login não possui Papel e deve ser exibida a msg na tela com Logoff ModelState.AddModelError("", "Login sem Grupo Definido: Contate o Administrador"); LogOff(); } return RedirectToAction("Index", "Home"); } else { ModelState.AddModelError("", "Inválido Login ou Senha"); } } return View(); }
public ActionResult RecLoginEmail(LoginModel model) { TempData["RecLoginSenha"] = null; //Retirar não numéricos do CPF string Cliente_CPF = Util.RemoveNaoNumericos(model.cpf); model.cpf = Cliente_CPF; //Cria o objeto cliente somente com o filtro passado cliente cliente = db.clientes.ToList().Find(x => x.CPF ==model.cpf); if (cliente == null) { cliente = db.clientes.ToList().Find(x => x.EMAIL == model.email.ToLower()); if (cliente == null) { ModelState.AddModelError("", "CPF ou E-MAIL não se encontram vinculados a nenhum Login"); return View(model); } } //Descriptografar senha e confirmasenha antes de enviar a banco string texto = cliente.SENHA; //Está chave tem que ser a mesma que a do texto Encriptado. string key = "Criptografia"; Criptografia.Criptografia crip = new Criptografia.Criptografia(CryptProvider.DES); crip.Key = key; cliente.SENHA = crip.Decrypt(texto); //Fim da Descriptografia //Início Chamada Enviar E-mail ao Cliente com seu Login e Senha SendMail.EnviaEmail(cliente.EMAIL, cliente.NOME, "Recuperação de Login e Senha do ReclameAgora", "Prezado(a) <span color:Blue><b>" + cliente.NOME.ToString() + "</b></span>,<br /><br />" + " " + "Seu Login e Senha foram recuperados e seguem abaixo: <br /><br />" + " " + "Login = <b>" + cliente.LOGIN.ToString() + "</b>.<br /><br />" + " " + "Senha = <b>" + cliente.SENHA.ToString() + "</b>.<br /><br />" + "<a href=\"http://reclameagora.apphb.com/Login\" title=\"ReclameAgora\"> http://reclameagora.apphb.com/Login</a> <br /><br />" + "Atenciosamente,<br />" + "Equipe ReclameAgora"); //Fim da Chamada Enviar E-mail TempData["RecLoginSenha"] = "Seu Login e Senha foram recuperados com sucesso e enviados em alguns instantes para o E-mail já cadastrado no sistema."; return RedirectToAction("RecLoginEmail", "Login"); }