public ActionResult Cadastro([Bind(Include = "Nome,Email,Senha,DatadeNascimento,Sexo,ConfirmarSenha,TermosdeUso")] CadastroUsuario usuario, string button, string email, string senha) { ViewBag.Sexo = new SelectList(Enum.GetValues(typeof(Sexo))); string Senha = "^(?=.*[0-9].*[0-9])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,}$"; if (button == "cadastrar") { ViewBag.Cadastro = "active"; ViewBag.Login = ""; ViewBag.Active = false; if (!usuario.TermosdeUso) { ModelState.AddModelError("", "É Necessário aceitar os Termos de Uso."); TempData["erro"] = "ok"; return(View(usuario)); } if (usuario.Nome.Length < 3 || usuario.Nome.Length > 250) { ModelState.AddModelError("", "O nome do usuário deve conter entre 3 e 250 caractéres."); TempData["erro"] = "ok"; return(View(usuario)); } if (!Regex.IsMatch(usuario.Senha, Senha)) { ModelState.AddModelError("", "A senha do usuário deve conter no minimo 8 caractéres, caractéres especiais, 1 número e 1 letra maiúscula"); TempData["erro"] = "ok"; return(View(usuario)); } if (usuario.Senha != usuario.ConfirmarSenha) { ModelState.AddModelError("", "Senhas não conhecidem."); TempData["erro"] = "ok"; return(View(usuario)); } Usuario usu = new Usuario { DatadeNascimento = usuario.DatadeNascimento, Nome = usuario.Nome, Senha = crp.CriptografaSHA512(usuario.Senha), TipoUsuario = TipoUsuario.Comum, Bloqueado = Bloqueado.Não, Inativo = Inativo.Não, Sexo = usuario.Sexo, Email = usuario.Email, SerieNotificacoes = true, EpiNotificacoes = true, Spoiler = false }; if (!usuarioServices.EmailWhere(usuario.Email)) { if (ModelState.IsValid) { db.Usuario.Add(usu); db.SaveChanges(); TempData["MSG"] = Funcoes.EnviarEmail(usuario.Email, "Cadastro Rate Your Show", "<div style='background:rgb(245,245,245); width:760px; padding-bottom:30px'>" + " <h1 style='margin:0px; padding:16px 30px'>"+ " <a href='#'><img src='https://i.imgur.com/tF57D8G.png' alt=''></a>"+ " </h1>"+ " <div style='padding:0px 30px'>"+ " <img src='https://imagizer.imageshack.com/v2/700x280q90/921/0vhXWJ.jpg' alt='' style='vertical-align:top' width='700' height='280'>"+ " </div>"+ " <div style='background:rgb(255,255,255); padding:48px 30px 47px; margin:0px 30px 0px; width:640px;'>"+ " <div style='color: rgb(150, 150, 150); line-height: 16px; padding-bottom: 17px; font-family: verdana, serif, 'EmojiFont'; font-size: 14px;'> "+ " <br /> "+ " Bem-vindo ao Rate Your Show, <span style='text-decoration: none; color: rgb(255, 94, 58);'>"+ usu.Nome + "!</span> " + " <p style ='color: rgb(150, 150, 150); margin-top: 15px; line-height: 20px; font-family: verdana, serif, 'EmojiFont'; font-size: 13px;''>Estamos felizes porque você agora faz parte da nossa comunidade que cresce cada vez mais!"+ " Com o Rate Your Show, você pode manter um controle das suas séries e compartilha-las com outros membros da comunidade.</p>"+ " </div> "+ " <div style='color: rgb(150, 150, 150); padding-top: 27px; font-family: verdana, serif, 'EmojiFont'; font-size: 13px;'>"+ " Com amor, <a href='' style='text-decoration: none; color: rgb(255, 94, 58); text-transform: uppercase; '>Rate Your Show</a>."+ " </div>"+ " </div>"+ " </div>"); TempData["Sucesso"] = "ok"; return(RedirectToAction("Cadastro")); } return(View()); } else { ModelState.AddModelError("", "O email informado já está cadastrado em nossa base."); TempData["erro"] = "ok"; return(View()); } } else { ViewBag.Cadastro = ""; ViewBag.Login = "******"; ViewBag.Active = false; Usuario usu = db.Usuario.Where(t => t.Email == email).ToList().FirstOrDefault(); if (usu != null) { if (usu.Senha != crp.CriptografaSHA512(senha)) { ModelState.AddModelError("", "Senha Incorreta!"); return(View()); } if (usu.Bloqueado == Bloqueado.Sim) { ModelState.AddModelError("", "Usuario Bloqueado!"); return(View()); } string permissoes = ""; permissoes += Enum.GetName(typeof(TipoUsuario), usu.TipoUsuario); permissoes = permissoes.Substring(0, permissoes.Length - 1); FormsAuthentication.SetAuthCookie(usu.Email, false); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, usu.Email, DateTime.Now, DateTime.Now.AddMinutes(30), false, permissoes); string hash = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie("UsuId", usu.UsuarioId.ToString()); if (ticket.IsPersistent) { cookie.Expires = ticket.Expiration; } Response.Cookies.Add(cookie); if (usu.Inativo == Inativo.Sim) { return(RedirectToAction("UsuarioInativo", "Home")); } TempData["Login"] = "******"; return(RedirectToAction("Index", "LandingPage")); } else { ModelState.AddModelError("", "E-mail Não Cadastrado"); return(View()); } } }