コード例 #1
0
        public ActionResult Login(Administrador administrador, string returnUrl)
        {
            _repositorio = new AdministradoresRepositorio();

            if (ModelState.IsValid)
            {
                Administrador admin = _repositorio.ObterAdministrador(administrador);

                if (admin != null)
                {
                    if (!Equals(administrador.Senha, admin.Senha))
                    {
                        ModelState.AddModelError("", "Senha não confere!.");
                    }
                    else
                    {
                        //cookie nao vai ser permanente, se ele fecha a pag. vai ter que autentica novamente - false
                        FormsAuthentication.SetAuthCookie(admin.Login, false);

                        //Url.IsLocalUrl - retorna true or false
                        if (Url.IsLocalUrl(returnUrl)
                            && returnUrl.Length > 1
                            && returnUrl.StartsWith("/")
                            && !returnUrl.StartsWith("//")
                            && !returnUrl.StartsWith("/\\"))
                        {
                            return Redirect(returnUrl);
                        }
                        return RedirectToAction("Index", "Produto", new { area = "Administrativo" });
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Administrador não localizado.");
                }
            }

            return View(new Administrador());
        }
コード例 #2
0
 public Administrador ObterAdministrador(Administrador administrador)
 {
     return _context.Administradores.FirstOrDefault(a => a.Login == administrador.Login);
 }