示例#1
0
        public ActionResult Index(Persona p, string returnUrl)
        {
            ColegioEntities db = new ColegioEntities();

            if (p.Dni != 0)
            {
                if (p.Contraseña != null && p.Contraseña != "")
                {
                    try
                    {
                        //busca la persona con el dni y contraseña dada
                        var persona = db.Persona.Where(x => x.Dni == p.Dni && x.Contraseña == p.Contraseña).First();
                        if (persona != null)
                        {
                            HttpContext.Session["IsAuthenticated"] = true;

                            //si es el administrador
                            if (LoginServicio.EsAdministrador(persona.Dni))
                            {
                                HttpContext.Session["Role"] = "Administrador";

                                return(RedirectToAction("Index", "Administrador"));
                            }
                            else if (LoginServicio.EsAlumno(persona.Dni))
                            {
                                HttpContext.Session["Role"] = "Alumno";
                                return(View());
                            }
                            else if (LoginServicio.EsProfesor(persona.Dni))
                            {
                                HttpContext.Session["Role"] = "Profesor";
                                HttpContext.Session["Dni"]  = persona.Dni;

                                return(RedirectToAction("CursosPorProfe", "Curso"));
                            }
                        }

                        ViewBag.error = "D.N.I. o contraseña incorrecta.";
                    }
                    catch (Exception e)
                    {
                        ViewBag.error = "D.N.I. o contraseña incorrecta.";
                    }
                }
                else
                {
                    ViewBag.errorContraseña = "Ingrese su contraseña";
                }
            }
            else
            {
                ViewBag.errorDni = "Ingrese un dni válido";
            }


            return(View("Index", p));
        }
        public ActionResult Login(LoginServicio login)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }
            else
            {
                if (login.CheckProfesor == 1)
                {
                    if (profesorServicio.VerificarProfesorLogin(login) == 0)
                    {
                        ViewBag.MensajeError = "Email y/o Contraseña inválidos";
                        return(View());
                    }
                    else
                    {
                        int idP = profesorServicio.VerificarProfesorLogin(login);
                        Session["id"] = idP;
                        Helpers.SesionHelper.IdUsuario  = idP;
                        Helpers.SesionHelper.RolUsuario = "profesor";
                        login.Roles = "profesor";
                        FormsAuthentication.SetAuthCookie(login.Email, false);

                        var    authTicket      = new FormsAuthenticationTicket(1, login.Email, DateTime.Now, DateTime.Now.AddMinutes(20), false, login.Roles);
                        string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                        var    authCookie      = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                        HttpContext.Response.Cookies.Add(authCookie);
                        return(RedirectToAction("ProfesorIndex"));
                    }
                }
                else
                {
                    if (alumnoServicio.VerificarAlumnoLogin(login) == 0)
                    {
                        ViewBag.MensajeError = "Email y/o Contraseña inválidos";
                        return(View());
                    }
                    else
                    {
                        int idA = alumnoServicio.VerificarAlumnoLogin(login);
                        Session["id"] = idA;
                        Helpers.SesionHelper.IdUsuario  = idA;
                        Helpers.SesionHelper.RolUsuario = "alumno";
                        login.Roles = "alumno";
                        FormsAuthentication.SetAuthCookie(login.Email, false);

                        var    authTicket      = new FormsAuthenticationTicket(1, login.Email, DateTime.Now, DateTime.Now.AddMinutes(20), false, login.Roles);
                        string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                        var    authCookie      = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                        HttpContext.Response.Cookies.Add(authCookie);
                        return(RedirectToAction("AlumnoIndex", new { id = idA }));
                    }
                }
            }
        }
示例#3
0
 public LoginControlador(ILoginVista vista)
 {
     _vista    = vista;
     _servicio = new LoginServicio();
 }